![9ac2d6682ae371a8b2b9acc7e9aa0a3d.png](https://i-blog.csdnimg.cn/blog_migrate/0d5e8380b3d966d580ef7e106cc4533f.jpeg)
前言:当我们需要对数据做筛选和查询的时候,往往会涉及到一些限制条件的判断,今天就分享一个判断字符串的技巧。
在实际应用中,我们会遇到各种各样的需求,这些需求都跟数据库有着紧密的关系,在复杂的逻辑也只不过是增删改查。
![3e1c798c8dbb819caeb56c8520f95a6f.png](https://i-blog.csdnimg.cn/blog_migrate/5ebd82d0bb982695d1a65d12ae6f85fe.jpeg)
其时,如果我们将数据库中每一个字段都看成是一个变量,即然是变量就可以运算,只要能运算,结果就是我们所需要的值。
以下案列来自于“一点PHP”:
![89071a48ec9d07bf5b7370975b52793c.png](https://i-blog.csdnimg.cn/blog_migrate/58518d4ef1107773e43d4af05d37aa6c.jpeg)
解决如下:
1、单个值查询使用myql函数:FIND_IN_SET()。
select*from表名where FIN_IN_SET('所包的字符串',字段);
2、多个值模糊查询,使用mysql正则:REGEXP。此方式相当于( LIKE '%1%' OR LIKE '%3%' OR LIKE '%5%' )
select*from表名where字段 REGEXP(包含字符串|包含字符串|包含字符串...);//简单说这里面就是正则规则
![b465aa8c2a5b3533a63c2dd0d156e015.png](https://i-blog.csdnimg.cn/blog_migrate/16e214977cb8c9f282d097f13c4eb2e0.jpeg)
3、多个值匹配查询,使用mysql正则:REGEXP,此方式相当于( FIND_IN_SET('1',title) OR FIND_IN_SET('3',title) OR FIND_IN_SET('5',title) )
SELECT*FROM`by_content`WHEREtitle REGEXP'(^|,)(1|3|5)(,|$)';