sql 中 like 语句的用法
测试表.
CREATE TABLE test_like (
like_value VARCHAR(20)
);
INSERT INTO test_like
SELECT ‘1234567890’ UNION ALL
SELECT ‘12345’ UNION ALL
SELECT ‘abca’ UNION ALL
SELECT ‘adcb’ UNION ALL
SELECT ‘abcc’ UNION ALL
SELECT ‘abcd’ UNION ALL
SELECT ‘abcde’ UNION ALL
SELECT ‘xyz 10% OFF’ UNION ALL
SELECT ‘xyz 20% OFF’ UNION ALL
SELECT ‘xyz_123_abc’
_ 表示仅仅匹配1个字符
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘1234_’;
like_value
12345
(1 行受影响)
% 表示仅仅匹配0个或多个字符
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘12345%’;
like_value
1234567890
12345
(2 行受影响)
使用模式匹配
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘abc[ad]’;
like_value
abca
abcd
(2 行受影响)
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘[1a]%[5e]’;
like_value
12345
abcde
(2 行受影响)
使用 ESCAPE 定义转义符
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘%!%%’ ESCAPE ‘!’;
like_value
xyz 10% OFF
xyz 20% OFF
(2 行受影响)
SELECT
*
FROM
test_like
WHERE
like_value LIKE ‘%!_%’ ESCAPE ‘!’;
like_value
xyz_123_abc
(1 行受影响)
在sql语句中,like所有的用法
Like的运用场合主要在模糊查询的时候,一般以查询字符串居多,这里据一些例子来说他的一般用法:
例1,查询name字段中包含有“明”字的。
select * from table1 where name like ‘%明%’
这里不要使用*来代替,一般在使用0个或者任意个字符构成的字符串的时候最好使用%
不过在首或尾使用可以相互替换,如果在头尾同时使用的话,就必须要使用%
例2,查询name字段中以“李”字开头。
select * from table1 where name like ‘李*’
或者
select * from table1 where name like ‘李%’
例3,查询name字段中含有数字的。
select * from table1 where name like ‘%[09]%’
例4,查询name字段中含有小写字母的。
select * from table1 where name like ‘%[az]%’
例5,查询name字段中不含有数字的。
select * from table1 where name like ‘%[!09]%’
补充一点,?或者_表示单个字符