查询两个表A、B的数据,传入一个值a,要模糊查询要么A.name like%a%要么B.name like %a%
但是如果两个都不符合的时候就会全部查询出来,这种情况不应该是一条都查询不出来吗?求大神指教
你sql语句呢?
SELECT t1.id,t1.batchName,t2.person,t2.tel,t2.farm_address,t1.del
FROM t_batch t1,t_farm t2
WHERE t1.fmid=t2.id AND t2.foctoryId='a1b3d8ef63624cb79a2b090e4ec177e3' AND t1.del IN(0,1)
AND t1.batchName LIKE '%?%' OR t2.name LIKE '%?%'
ORDER BY t1.addDateTime DESC LIMIT 0,5
@软件杨威: 不知道是你描述的有问题还是你代码的问题
你描述中指的是要么,要么,那么就是互斥的关系,那么应该就是如果a中查不到才去b查。
另一个你?什么意思,占位符还是参数?
@Daniel Cai: 就是传进来的条件不知道是batchname还是name,所以这两个字段都需要,batchname包含这个参数能查出来,name包含也能查出来,两个都包含也可以,但现在问题是两个都不包含也能查出来所有的,?是前台传进来的参数,我的表达可能不太准确,不好意思哈
@软件杨威:
select * from (select * from tb t1 tb2 t2
where ....) t where batchname like .... or name like ...
order by ... limit ...
@Daniel Cai: ok了,谢谢