SQL中like的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 行受影响)
参考技术A Like ‘%mr%’--------包含字符mr的任何文本;
Like ‘mr%’-----------以字符mr开头的任何文本;
Like ‘%mr’------------以字符mr结尾的任何文本;
使用’_’匹配任意单个字符;
使用’[]’匹配某一范围的字符:[a-m]表示a到m的所有字符,[0-9]表示0到9的所有数字;
使用’[^]’匹配非某一范围的字符;
参考技术B Like ‘%mr%’--------包含字符mr的任何文本;
Like ‘mr%’-----------以字符mr开头的任何文本;
Like ‘%mr’------------以字符mr结尾的任何文本;
使用’_’匹配任意单个字符;
使用’[]’匹配某一范围的字符:[a-m]表示a到m的所有字符,[0-9]表示0到9的所有数字;
使用’[^]’匹配非某一范围的字符;
参考技术C select * from table1 where table1.columname like '%什么%'
就是模糊查询,如果like '%什么' 就是columname列前面模糊最后两个字是‘什么’的数据,
like '什么%' 就是columname列最前面两个字是什么后面随便模糊的查法,如果 '%什么%'
columname列任何包含‘什么’的数据都会被查询出来
参考技术D update c set xx = '2345' where (xx like '%1234%')
将c表中xx列中包含1234的数据替换为2345

以上是关于SQL中like的用法的主要内容,如果未能解决你的问题,请参考以下文章

SQL中like的用法

SQL中like的用法

在sql语句中,like所有的用法

SQL Like的用法

sql语句中like的用法详细解析

SQL中的LIKE语句的用法