模糊查询出错

JPF1024 2014-05-10 05:12:37

SELECT DISTINCT *
FROM m_info mpjdi, m_topic_type mptt, m_info mpinfo
WHERE mpjdi.tid = mptt.tid
AND mpinfo.jid = mpjdi.jid
AND mpjdi.city LIKE '%四川%' -- 城市
OR mpjdi.province LIKE '%四川%' -- 省
OR mpjdi.description LIKE '%四川%' -- 描述
OR mptt.`name` LIKE '%四川%' -- 名称
LIMIT 1, 10


上面语句的查询结果基本都跟查询词无关,因为是相当于搜索的那种,所以要查多个表多个字段,最想知道为什么查询结果和查询词无关呢?求解答,谢谢
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2014-05-12
  • 打赏
  • 举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
注意 OR 运算。
谢谢提醒,的确没注意到这个。。。。
JPF1024 2014-05-12
  • 打赏
  • 举报
回复
引用 2 楼 benluobobo 的回复:
SELECT DISTINCT * FROM m_info mpjdi, m_topic_type mptt, m_info mpinfo WHERE mpjdi.tid = mptt.tid AND mpinfo.jid = mpjdi.jid AND (mpjdi.city LIKE '%四川%' -- 城市 OR mpjdi.province LIKE '%四川%' -- 省 OR mpjdi.description LIKE '%四川%' -- 描述 OR mptt.`name` LIKE '%四川%' -- 名称) LIMIT 1, 10 按照你说的,语句中首先应该是少了两个括号
能用,谢谢了
ACMAIN_CHM 2014-05-10
  • 打赏
  • 举报
回复
注意 OR 运算。
benluobo 2014-05-10
  • 打赏
  • 举报
回复
SELECT DISTINCT * FROM m_info mpjdi, m_topic_type mptt, m_info mpinfo WHERE mpjdi.tid = mptt.tid AND mpinfo.jid = mpjdi.jid AND (mpjdi.city LIKE '%四川%' -- 城市 OR mpjdi.province LIKE '%四川%' -- 省 OR mpjdi.description LIKE '%四川%' -- 描述 OR mptt.`name` LIKE '%四川%' -- 名称) LIMIT 1, 10 按照你说的,语句中首先应该是少了两个括号
JPF1024 2014-05-10
  • 打赏
  • 举报
回复
其中有个字段是BLOB类型的,数据很多,是不是因为这个出错的?

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧