SQL模糊查询的语法:SELECT 字段 FROM 表 WHERE 某字段 Like 条件

其中关于条件,SQL提供了四种匹配模式:

一、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

select namefield from table where table.namefield LIKE ‘%cheng%’; 查询table表中namefield字段中含有cheng的所有结果,如’qcheng’ ‘cheng237′ ‘cheng’等等。

二、_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 SELECT * FROM user WHERE u_name LIKE ‘_c_’ ; 只找出“acb”这样u_name为三个字且中间一个字是“c”的;

再比如 SELECT * FROM user WHERE u_name LIKE ‘c__’; 只找出“cba”这样name为三个字且第一个字是“c”的;

三、[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

比如 SELECT * FROM user WHERE u_name LIKE ‘[张李王]三’

将找出“张三”、“李三”、“王三”(而不是“张李王三”);

如 [ ] 内有一系列字符(0123、abcde之类的)则可略写为“0-3”、“a-e”

SELECT * FROM user WHERE u_name LIKE ‘小[1-9]‘

将找出“小1”、“小2”、……、“小9”;

四、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

比如 SELECT * FROM user WHERE u_name LIKE ‘[^张李王]五’

将找出不姓“张”、“李”、“王”的“赵五”、“孙五”等;

SELECT * FROM user WHERE u_name LIKE ‘小[^1-4]‘;

将排除“小1”到“小4”,寻找“小5”、“小6”、……

好了,就这些,不过最常用的还是第一种。如遇到条件接收的是变量的时候,最好将变量用{}括起来,类似于select …… where uname like ‘%{变量名}%’