菜鸟问题,在spl server 里如何实现模糊查询
(就是在一个字段里查出所有包含哪个字符的记录),急用请帮帮忙,谢谢 问题点数:0、回复次数:11Top
1 楼tj_dns(愉快的登山者)回复于 2003-09-04 13:50:07 得分 0
select * from table1 where colname like '%sql%'
Top
2 楼pengdali()回复于 2003-09-04 13:56:52 得分 0
示例
A. 使用带 % 通配符的 LIKE
下例查找 authors 表中所有区号为 415 的电话号码。
USE pubs
GO
SELECT phone
FROM authors
WHERE phone LIKE '415%'
ORDER by au_lname
GO
下面是结果集:
phone
------------
415 658-9932
415 548-7723
415 836-7128
415 986-7020
415 836-7128
415 534-9219
415 585-4620
415 354-7128
415 834-2919
415 843-2991
415 935-4228
(11 row(s) affected)
B. 使用带 % 通配符的 NOT LIKE
下例查找 authors 表中所有区号不是 415 的电话号码。
USE pubs
GO
SELECT phone
FROM authors
WHERE phone NOT LIKE '415%'
ORDER BY au_lname
GO
下面是结果集:
phone
------------
503 745-6402
219 547-9982
615 996-8275
615 297-2723
707 938-6445
707 448-4982
408 286-2428
301 946-8853
801 826-0752
801 826-0752
913 843-0462
408 496-7223
(12 row(s) affected)
C. 使用 ESCAPE 子句
下例使用 ESCAPE 子句和转义符查找 mytbl2 表的 c1 列中的精确字符串 10-15%。
USE pubs
GO
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'mytbl2')
DROP TABLE mytbl2
GO
USE pubs
GO
CREATE TABLE mytbl2
(
c1 sysname
)
GO
INSERT mytbl2 VALUES ('Discount is 10-15% off')
INSERT mytbl2 VALUES ('Discount is .10-.15 off')
GO
SELECT c1
FROM mytbl2
WHERE c1 LIKE '%10-15!% off%' ESCAPE '!'
GO
D. 使用 [ ] 通配符
下例查找名字为 Cheryl 或 Sheryl 的作者。
USE pubs
GO
SELECT au_lname, au_fname, phone
FROM authors
WHERE au_fname LIKE '[CS]heryl'
ORDER BY au_lname ASC, au_fname ASC
GO
下例查找姓为 Carson、Carsen、Karson 或 Karsen 的作者所在的行。
USE pubs
GO
SELECT au_lname, au_fname, phone
FROM authors
WHERE au_lname LIKE '[CK]ars[eo]n'
ORDER BY au_lname ASC, au_fname ASC
GO
Top
3 楼binglian1981(大大鸟)回复于 2003-09-04 14:01:47 得分 0
还是有问题,在company这个字段里查出有‘北’这个字的记录。Top
4 楼pjhxxy(pjhxxy)回复于 2003-09-04 14:03:06 得分 0
1.对于小数据量的文本用
select * from table where field like '%content%'
2.对于大数据量的文本用全文索引,
select * from table where contains(field,'content')
前提是对field字段建立全文索引。
Top
5 楼myflok(老虎爱吃肉)回复于 2003-09-04 14:04:42 得分 0
select * from table1 where company like '%北%'Top
6 楼yujohny(踏网无痕)回复于 2003-09-04 14:07:01 得分 0
用 like
例如: select 客户名称 from customer where 客户编号 Like '%A%'
这句话的意思就是从customer表里取出客户编号含有A字母的客户名称Top
7 楼king0401(king0401)回复于 2003-09-04 14:11:16 得分 0
select * from table1 where company like '%北%'
Top
8 楼hanps()回复于 2003-09-04 14:14:13 得分 0
用% 多个字符匹配
?单个字符Top
9 楼yujohny(踏网无痕)回复于 2003-09-04 14:20:23 得分 0
用 like
例如: select 客户名称 from customer where 客户编号 Like '%A%'
这句话的意思就是从customer表里取出客户编号含有A字母的客户名称Top
10 楼yyfww(冷雨)回复于 2003-09-08 11:38:35 得分 0
select * from where [字段名] like '%[条件]%'Top
11 楼kkkksunday(啊呀)回复于 2003-09-08 11:44:58 得分 0
like
别忘了加 % 或 ?
我刚开始用like时总忘写,结果就完全匹配了^_^Top
12 楼sdhdy(大江东去...)回复于 2003-09-08 11:48:46 得分 0
select * from tablename where company like '%北%'Top
13 楼sdhdy(大江东去...)回复于 2003-09-08 11:50:13 得分 0
select * from tablename where company like '%北%'Top




