模糊查询方法_精确查询和模糊查询[通俗易懂]

模糊查询方法_精确查询和模糊查询[通俗易懂]模糊查询_模糊查询

一、MySQL通配符模糊查询(%,_)

1-1. 通配符的分类
“%” 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。
“_” 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然,也可以like “陈____”,数量不限。
like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行

通配符的使用

1) % 通配符:

— 模糊匹配含有“菜”字的数据

SELECT * from app_info where appName like ‘%菜%’;

— 模糊匹配含有“xx网x车xxx”的数据,如:”携程网约车客户端”

SELECT * from app_info where appName like ‘__网_车%’;

注意事项:   如果数据中有“%”、“_”等符号,那岂不是和通配符冲突了

注意大小写,在使用模糊匹配时,也就是匹配文本时,MySQL默认配置是不区分大小写的。当你使用别人的MySQL数据库时,要注意是否区分大小写,是否区分大小写取决于用户对MySQL的配置方式.如果是区分大小写,那么像Test12这样记录是不能被”test__”这样的匹配条件匹配的。
注意尾部空格,”%test”是不能匹配”test “这样的记录的。
注意NULL,%通配符可以匹配任意字符,但是不能匹配NULL,也就是说SELECT * FROM blog where title_name like ‘%’;是匹配不到title_name为NULL的的记录
 

如果数据中有“%”、“_”等符号怎么办

这里需要加 ESCAPE 关键字进行转义

类如:SELECT * from ct_food where FoodName LIKE ‘%/_%’ ESCAPE ‘/’; 

MySQL内置函数检索(locate,position,instr)

LOCATE()函数

返回 substr 在 str 中第一次出现的位置。如果 substr 在 str 中不存在,返回值为 0,如果substr 在 str 中存在,返回值为:substr 在 str中第一次出现的位置。

用LOCATE关键字进行模糊匹配, 从第二个字符开始匹配”网”,则”网易云游戏、网来商家”等数据就被过滤了

例子:SELECT * from app_info where LOCATE(‘网’, `appName`, 2) > 0;

POSITION()方法

语法:POSITION(substr IN subs)

— 用POSITION关键字进行模糊匹配,等同于:”like ‘%网%'” 

SELECT * from app_info where POSITION( '网' IN `appName`);

INSTR()方法 

返回字符串str中第一次出现子字符串substr的位置。INSTR()与LOCATE()的双参数形式相同,只是参数的顺序相反。    

例:SELECT * from app_info where INSTR(`appName`, ‘网’) > 0;

模糊查询方法_精确查询和模糊查询[通俗易懂]

 类如我这个就是通过name来查询

今天的文章模糊查询方法_精确查询和模糊查询[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/70295.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注