选择中多个条件的Mysql查询语法

时间:2014-04-07 20:24:37

标签: php mysql

大家好我没遇到mysql查询选择语法

WHERE ((a.product_id = b.product_id) AND (b.category_id = '20') AND (a.product_publish = '1') AND ( a.product_manufacturer_id = 2 ) AND (a.extra_field_10 = 92 ) AND (a.product_price BETWEEN 171 AND 631 ))
你在这看到有什么问题吗? (可能缺少引号)

category_id (integer)
product_publish (integer)
extra_field_10  (integer)
product_price (integer)
manu (integer)

如果你问为什么有括号,因为有多种条件,例如

WHERE ((a.product_id = b.product_id) AND (b.category_id = '20' || b.category_id = '21') AND (a.product_publish = '1') AND ( a.product_manufacturer_id = 2 ) AND (a.extra_field_10 = 92 || a.extra_field_10 = 11 ) AND (a.product_price BETWEEN 171 AND 631 ))

SELECT是正确的 FROM也是正确的 值是正确的,它必须是我缺少的语法问题

更新 * ** * ***

  • 没有错误sql只返回false
  • 我知道括号不是必要的,但他们也不会犯错误
  • 列是好的我使用类似的选择,他们工作正常,但这一个不能正常工作

更新 * ** * ** * ** * ** * ***

看起来有问题,所以我会更新这篇文章,当我找出真正的问题,也许它可以帮助将来的人

1 个答案:

答案 0 :(得分:0)

您的代码中不需要这么多括号。你也可以在http://sqlfiddle.com/中发布你的表格。
我相信这个查询(如果查询中的所有字段都存在)将起作用。
ps:如果字段是整数,则不需要提供引号。

WHERE a.product_id = b.product_id AND b.category_id = 20 AND a.product_publish = 1
AND product_manufacturer_id = 2  AND a.extra_field_10 = 92 AND a.product_price BETWEEN 171 AND 631
相关问题