【问题标题】:wrong query result in mysqli [duplicate]mysqli中的错误查询结果[重复]
【发布时间】:2015-10-29 00:32:41
【问题描述】:

您好,我有一个包含 publish=3 值的文件

但是这个查询打印出来!(它不应该)

 SELECT * FROM article WHERE publish BETWEEN 0 AND 2 AND feature = '1' 
 AND sid = '3' OR sid = '4' OR sid = '5' OR sid = '6' OR sid = '7' 
 OR sid = '8' OR sid = '9' OR sid = '10' AND created BETWEEN 0 
 AND 1446078164 ORDER BY id DESC LIMIT 0, 6                 

我怎么了?

更多信息:

对于 where,有 4 个主要的集群: 在 0 和 2 之间发布的位置

AND feature = '1'

AND sid = '3' OR sid = '4' OR sid = '5' OR sid = '6' OR sid = '7' 
 OR sid = '8' OR sid = '9' OR sid = '10'

AND created BETWEEN 0 AND 1446078164

【问题讨论】:

  • 奇怪的条件太多让人难以阅读和理解
  • 你真的应该使用括号来跟踪正在发生的事情。

标签: mysql sql


【解决方案1】:

您需要括号,并且可能需要in。我猜你想要的逻辑是:

SELECT *
FROM article
WHERE publish BETWEEN 0 AND 2 AND
      feature = '1' AND
      sid IN ('3', '4', '5', '6', '7' , '8', '9', '10') AND
      created BETWEEN 0 AND 1446078164
ORDER BY id DESC
LIMIT 0, 6;

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 2013-12-27
    • 1970-01-01
    • 2014-02-11
    • 2017-07-24
    • 2016-01-15
    • 2013-03-09
    • 2018-06-24
    • 2019-03-08
    相关资源
    最近更新 更多