首页 新闻 会员 周边

MySql数据库多表联合多字段模糊查询

0
悬赏园豆:50 [已解决问题] 解决于 2017-03-27 15:38

查询两个表A、B的数据,传入一个值a,要模糊查询要么A.name like%a%要么B.name like %a%

但是如果两个都不符合的时候就会全部查询出来,这种情况不应该是一条都查询不出来吗?求大神指教

软件杨威的主页 软件杨威 | 初学一级 | 园豆:26
提问于:2017-03-27 14:28
< >
分享
最佳答案
0

你sql语句呢?

收获园豆:50
Daniel Cai | 专家六级 |园豆:10424 | 2017-03-27 14:45

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

软件杨威 | 园豆:26 (初学一级) | 2017-03-27 14:46

@软件杨威: 不知道是你描述的有问题还是你代码的问题

你描述中指的是要么,要么,那么就是互斥的关系,那么应该就是如果a中查不到才去b查。

 

另一个你?什么意思,占位符还是参数?

Daniel Cai | 园豆:10424 (专家六级) | 2017-03-27 15:05

@Daniel Cai: 就是传进来的条件不知道是batchname还是name,所以这两个字段都需要,batchname包含这个参数能查出来,name包含也能查出来,两个都包含也可以,但现在问题是两个都不包含也能查出来所有的,?是前台传进来的参数,我的表达可能不太准确,不好意思哈

软件杨威 | 园豆:26 (初学一级) | 2017-03-27 15:08

@软件杨威: 

select * from (select * from tb t1 tb2 t2

where ....) t where batchname like .... or name like ...

order by ... limit ...

Daniel Cai | 园豆:10424 (专家六级) | 2017-03-27 15:12

@Daniel Cai: ok了,谢谢

软件杨威 | 园豆:26 (初学一级) | 2017-03-27 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册