【问题标题】:Search query returning users own id搜索查询返回用户自己的 id
【发布时间】:2015-09-09 14:56:14
【问题描述】:

我不明白这个查询有什么问题,尽管有 AND 子句,它仍返回当前用户自己的 ID/数据:

SELECT *
FROM `User`
WHERE
user_name LIKE
'%a%'
OR
user_fname LIKE
'%a%'
OR
user_sname LIKE
'%a%'
AND
user_id != 38
ORDER BY
user_name,
user_sname,
user_fname 

有人知道为什么 and 子句没有从列表中删除 38 吗?

谢谢

【问题讨论】:

  • 只需添加括号,以便按照您想要的方式解析 AND 和 OR。
  • 谢谢你这样做:)

标签: php mysql sql


【解决方案1】:

WHERE 中更改您的条件,如下所示;基本上将它们括起来,因为AND 的优先级高于OR 条件

WHERE (user_name LIKE '%a%'
OR user_fname LIKE '%a%'
OR user_sname LIKE '%a%')
AND
user_id != 38

【讨论】:

  • 非常感谢您的快速回复,太好了,我会在允许时标记为已回答:)
【解决方案2】:
WHERE (user_name LIKE '%a%'
OR user_fname LIKE '%a%'
OR user_sname LIKE '%a%')
AND
user_id != 38

这会起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-20
    • 2014-03-13
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多