0


【SQL】字段筛选出含有某些关键词,模糊匹配LIKE的用法

如果我们要查询数据库中,某个字段含有一些文字,例如查名字的时候,查询开头含有某些姓氏的人,或者查询以某些符号结尾的文字,都可以用模糊匹配来查询字段,

WHERE

子句+

LIKE

的操作符搜索。

以下是一些使用示例:

1. 基本模糊匹配&转义通配符的处理

使用

%

作为通配符来匹配任意数量的字符。

SELECT*FROM table_name WHERE column_name LIKE'pattern%';

这将选择

column_name

中以"pattern"开头的所有行。

如果是筛选网址的时候,例如未处理的网址是长这样:

//mp.csdn.net

因为上面有转义通配符,会给如果用上面的查询会跳出报错:

“1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near ‘like ‘/%’’ at line 1”

在这里插入图片描述这时候要用反转义符的写法就能解决这个问题啦:

SELECT net FROM table_name WHERE net LIKE'\/%'

其他转义通配符的处理

如果模式中包含通配符字符(

%

_

),也可以使用

ESCAPE

子句来转义它们。

SELECT*FROM table_name WHERE column_name LIKE'p\%attern%'ESCAPE '\';

这将搜索

column_name

中包含"p%attern"的行,其中

%

被视为文字字符而不是通配符。

2. 任意位置的匹配

使用

%

通配符可以在模式的任何位置使用,包括中间和末尾

SELECT*FROM table_name WHERE column_name LIKE'%pattern%';

这将选择

column_name

中包含"pattern"的所有行。

3. 多个筛选条件的匹配查询

可以结合使用

AND

OR

来匹配多个模式。

SELECT*FROM table_name WHERE column_name LIKE'pattern1%'OR column_name LIKE'%pattern2';

这将选择

column_name

中以"pattern1"开头或包含"pattern2"的所有行。

4. 单字符的匹配,可以匹配中间的字段

如果是类似查询 “李X明” 这样的名字的格式的时候,可以用这种方法:

使用

_

(下划线)作为通配符来匹配任意单个字符。

SELECT*FROM table_name WHERE column_name LIKE'p_ttern%';

这将选择

column_name

中第四个字符是任意字符,且以"p"开头并以"tern"结尾的所有行。

5. 使用NOT进行否定匹配

如果需要查询网址,类似除了“http” 、“www.”开头的其他网址的格式,可以使用这种:

使用

NOT LIKE

LIKE ... ESCAPE

来进行否定的模糊匹配。

SELECT*FROM table_name WHERE column_name NOTLIKE'pattern%';

这将选择

column_name

中不以"pattern"开头的所有行。

6. ILIKE(不区分大小写的LIKE)

在某些数据库系统中(如PostgreSQL),可以使用

ILIKE

来进行不区分大小写的模糊匹配。

SELECT*FROM table_name WHERE column_name ILIKE'PATTERN%';

本文转载自: https://blog.csdn.net/Meggie35/article/details/140501237
版权归原作者 翠花上酸菜 所有, 如有侵权,请联系我们删除。

“【SQL】字段筛选出含有某些关键词,模糊匹配LIKE的用法”的评论:

还没有评论