您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页【SQL】字段筛选出含有某些关键词,模糊匹配LIKE的用法

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

来源:暴趣科技网

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

以下是一些使用示例:

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

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

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

这将选择column_name中以"pattern"开头的所有行。

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

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

“10 - 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. 多个筛选条件的匹配查询

可以结合使用ANDOR来匹配多个模式。

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 LIKELIKE ... ESCAPE来进行否定的模糊匹配。

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

这将选择column_name中不以"pattern"开头的所有行。

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

在某些数据库系统中(如PostgreSQL),可以使用ILIKE来进行不区分大小写的模糊匹配。

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务