likesql语句%


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]%’

补充一点,?或者_表示单个字符