类型:转载 责任编辑:asp 日期:2007/03/01
各位大虾:
我有一张表,如下:
create table tbase
(
char hy1(20),
char hy2(20),
char hy3(20),
char hy4(20)
)
现在我要在这张表所有列中找到某个字段为‘123456’的所有记录
请问各位,怎么实现,
可以用containstable吧,怎么用他啊,需要全文索引吗?
推荐阅读
用全文检索比较好,你可以看看:
http://expert.csdn.net/expert/faq/faq_index.asp?id=134905
如果数据量不大,你也可以用like来实现。
給個例子給你:
use northwind
go
select ft_tbl.description,
ft_tbl.categoryname,
key_tbl.rank
from categories as ft_tbl inner join
containstable (categories, description,
("sweet and savory" near sauces) or
("sweet and savory" near candies)
) as key_tbl
on ft_tbl.categoryid = key_tbl.[key]
where key_tbl.rank > 2
and ft_tbl.categoryname <> seafood
order by key_tbl.rank desc
char(20)没有必要用全文索引吧.
要先建立全文索引才能使用containstable
select * from tbase
where 123456 in (hy1,hy2,hy2,hy4)
如果数据量少,可以直接查找
包含的情况
select * from tbase where hy1 like %123456%
or hy2 like %123456%
or hy3 like %123456%
or hy4 like %123456%
全部匹配的情况
select * from tbase where hy1=123456
or hy2=123456
or hy3=123456
or hy4=123456