sql中怎么实现多个like条件的过滤,select b. a from b where b.c like ();

like后面的括号里的条件数是不定的,如:'1_%','2_%'...,但是这样写的SQl好像不对,怎么改才能正确啊,在线等答案
各位,后面的括号里面的条件是不能分开的,希望能给一个满意的答案

第1个回答  2017-11-03
楼上答案有问题,应该要把这些条件用括号分组成一个单独的过滤条件,不然,结果不是多个字段精确过滤的
例:
假设b的like项数多且不定,c有两个模糊匹配,还有其他项目,应该这样书写:

where 1=1 and (b like '%条件1%' or b like '%条件2%' ....)
and (c like '%条件c1%' or c like '%条件c2%')
and ...
第2个回答  推荐于2018-03-13
select b. a from b where b.c like () or b.c like () and b.c like ()追问

我说了 后面的条件数是不定的 你这样肯定不行,后面的条件是不能分开的

追答

那你应该更具你的条件来生成SQL语句啊 在用SQL语句来查询

追问

什么意思啊,后面的条件格式就是:'1_%','2_%'.....,数量不定

追答

那你后面的条件格式是怎么得到的 把你后面的条件格式拆分成数组 循环生成 select b. a from b where b.c like () or b.c like () and b.c like () 这种格式的一个查询语句不行吗

追问

后面的也是通过模糊条件查询得到的,所以很难分开

追答

条件以字符串 格式赋值给一个变量 在把变量 以“,”为标记拆分赋值给一个数组 在循环遍历数组 生成 SQL语句 这样怎么会不行 你用什么语言做的

追问

你的方法我接受了,谢谢你的帮助。

本回答被提问者和网友采纳
相似回答