gpt4 book ai didi

MySQL select where not()..and...and。 (或...或)

转载 作者:行者123 更新时间:2023-11-29 12:04:16 25 4
gpt4 key购买 nike

我正在尝试从一个表中选择数据。

这个查询运行良好:

SELECT * FROM game WHERE NOT (type = 'unity') 
AND (cat_id='3d' OR cat2_id='3d' OR cat3_id='3d')
ORDER BY hits desc limit 120, 70

但我需要使用published=1来运行它

SELECT * FROM game WHERE NOT (type = 'unity') 
AND (cat_id='3d' OR cat2_id='3d' OR cat3_id='3d')
AND published=1
ORDER BY hits desc limit 120, 70

此时我看到结果有 0 行,但它应该是 50 行。

最佳答案

这意味着条件与额外条件 ANDpublished=1 不匹配,因此没有返回记录。再说一次,如果你说 (type != 'unity'),而不是说 NOT (type = 'unity'),那么它会更可编辑。

您可以尝试像下面这样修改您的查询

SELECT * FROM game 
WHERE (type != 'unity')
AND published=1
AND '3d' in (cat_id, cat2_id, cat3_id)
ORDER BY hits desc
limit 120, 70;

如果您确实确定使用新条件 published=1 它应该返回 50 行,那么尝试使用 SQL 添加该条件作为外部查询条件,该 SQL 的效果如下所示,并查看它返回的结果.

SELECT * FROM
(
SELECT * FROM game WHERE NOT (type = 'unity')
AND (cat_id='3d' OR cat2_id='3d' OR cat3_id='3d')
ORDER BY hits desc limit 120, 70
) xxx WHERE published=1;

关于MySQL select where not()..and...and。 (或...或),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com