Mysql 多个where子句使用OR,不使用AND
首先,我不是一个SQL专家,所以我可能遗漏了一些括号或其他一些愚蠢而简单的东西;-) 任何人都可以告诉我为什么这样做并返回4行:Mysql 多个where子句使用OR,不使用AND,mysql,sql,Mysql,Sql,首先,我不是一个SQL专家,所以我可能遗漏了一些括号或其他一些愚蠢而简单的东西;-) 任何人都可以告诉我为什么这样做并返回4行: SELECT ppa.products_id FROM products_propattributes ppa WHERE ( (options_id = "11" AND options_values_id = "18") OR (options_id = "4" AND options_values_id = "4") ) 这一行不匹配,但它应该匹配1行:
SELECT ppa.products_id FROM products_propattributes ppa
WHERE ( (options_id = "11" AND options_values_id = "18")
OR (options_id = "4" AND options_values_id = "4") )
这一行不匹配,但它应该匹配1行:
SELECT ppa.products_id FROM products_propattributes ppa
WHERE ( (options_id = "11" AND options_values_id = "18")
AND (options_id = "4" AND options_values_id = "4") )
任何帮助都将不胜感激!
提前谢谢
Bas在第二个查询中只有
和s,因此选项\u id=“11”
和选项\u id=“4”
不可能都匹配
当然,options\u-values\u-id=“18”
和options\u-id=“4”
第二次查询也是一样的,它查找options\u-id=“11”
和options\u-id=“4”
所在的行。这是不可能的,因为options\u id
列云只有一个值。因为每行的一列中只能有一个可能的值。如果要使用或
获取同时具有两个条件的ID
,则返回true
SELECT ppa.products_id
FROM products_propattributes ppa
WHERE (options_id = "11" AND options_values_id = "18") OR
(options_id = "4" AND options_values_id = "4")
GROUP BY ppa.products_id
HAVING COUNT(*) = 2