sql语句不适用于和(…或…或…)
这可能是一件小事 但我尝试使用以下sql语句:sql语句不适用于和(…或…或…),sql,Sql,这可能是一件小事 但我尝试使用以下sql语句: SELECT * FROM Colors WHERE colorHueWarmth < 0 AND colorV >=0.7 AND (fk_subCategory=4 OR fk_subCategory=5 OR fk_subCategory=11) 在结果中,我得到了完美的colorHueWarmth和colorV,但我也得到了fk_子类别,其他值不是4,5或11 我试着改变值,但没有结果,甚至有可能做这样的声明吗 有人知道
SELECT * FROM Colors
WHERE colorHueWarmth < 0
AND colorV >=0.7
AND (fk_subCategory=4 OR fk_subCategory=5 OR fk_subCategory=11)
在结果中,我得到了完美的colorHueWarmth和colorV,但我也得到了fk_子类别,其他值不是4,5或11
我试着改变值,但没有结果,甚至有可能做这样的声明吗
有人知道我做错了什么吗
提前感谢您实际上有多种选择;虽然我要指出,你的问题中的查询实际上对我有效,看到了吗 您将在网上找到大量关于LIKE条款的文档,以下是一些您可能会觉得有用的文档: 注:W3Schools不能总是以表面价值来看待,而且由于它们经常包含错误/遗漏,因此经常被排除在建议链接之外
考虑到外键约束4、5或11的大小,IN子句是一个合理的选项,如果您有其他查询使用类似于大型集合的内容,那么这可能会变得非常低效,在这种情况下,您可以创建一个临时表,其中包含ID和内部连接 尝试在4,5,11中使用fk_子类别,尽管它应该可以按您现有的方式工作…您可以添加样本数据和样本输出吗?您可以发布一个带有一些样本数据的SQLFIDLE吗?你的问题看起来很好,我无法重现这个问题。另外,您使用的是什么数据库管理系统?您使用的是什么数据库?您可能需要添加一些圆括号来强制执行预期的操作员先例。谢谢Mihai!这就解决了问题
SELECT
*
FROM
Colors
WHERE
colorHueWarmth < 0
AND colorV >=0.7
AND (fk_subCategory=4 OR fk_subCategory=5 OR fk_subCategory=11)
SELECT
*
FROM
Colors
WHERE
colorHueWarmth < 0
AND colorV >=0.7
AND (fk_subCategory IN(4,5,11));