mysql 多个LIke的问题

我想是不是有更简便的方便来写like

原式为 Select AAA From Table
Where AAA Like '&123&' or AAA Like '&456&' or AAA Like '&354&' or AAA Like '&678&' or AAA Like '&777&'

这样写有点多,不知道有没有像Where AAA IN('123','456','54','678','777')
较简单方式来写

书写麻烦倒还是小事,主要如果条件是动态,那固定写法就不行了.可以尝试把语句字符串化, 再用执行的方法?

LIKE一般不支持多个输入合并的,我建议你能左匹配或者右匹配的就单独用左匹配,因为全匹配比较耗内存

你可以试试这个:

select books from tb_book where books

regexp ‘123|456|354’;#匹配任意一个字符串

正则表达式查询

select books from tb_book where books

regexp ‘^php’; 字符串开头

regexp ‘php$’; 字符串结尾

regexp ‘p.’; #匹配任意一个字符

regexp ‘[abc]’; #匹配abc中任意一个字符

regexp ‘[^a-z]’; #匹配除字符集外任意一个字符

regexp ‘s1|s2|s3’;#匹配任意一个字符串

regexp ‘j*a’; #匹配多个该字符a之前的字符j;j+a至少一个j

regexp ‘a{3}’; #匹配字符串连续出现3次

regexp ‘a{2,4}’; #匹配字符串最少2次,最多4次

根据你目前的情况有两种解决方案,第一是 看看是不是需求有问题,第二只能写正则表达式了。其他真不好解决。  like也不能出现那么多。会影响性能的。本身就是模糊查询。还模糊那么多次。