我需要选中结果并检查多列。
SELECT * FROM atricle WHERE
a.article_free_1 = 1 AND
a.article_free_2 = 1 AND
a.article_free_3 = 1 AND
a.article_free_4 = 1 AND
a.article_free_5 = 1 AND
a.article_free_6 = 1 AND
a.article_free_7 = 1 AND
a.article_free_8 = 1 AND
a.article_free_9 = 1 AND
a.article_free_10 = 1;
这里我想简化查询。它会很长,我需要在查询中添加40多列。
如何简化查询?
答案 0 :(得分:0)
如果您经常使用此查询,那么最好在表中创建计算/计算列。这将是这样的:
(CASE WHEN article_free_1 = 1
AND article_free_2 = 1 AND ....THEN 1 ELSE 0 END)
您可以将查询替换为:
SELECT * FROM atricle WHERE <computedColumn> = 1
它应该简化查询,并在每次执行时为您提供优化结果。
答案 1 :(得分:0)
我不能简单评论,所以我会发布作为答案。 您的查询是最佳的查询。计算字段只会增加开销,妨碍查询优化器尝试评估。无论你做什么,不要在sql中循环,这是一个可怕的补充方式,试图让人们喜欢SQL。坚持标准查询。你得到的是好的。
-Edit我读到了Jeemusu所写的内容。现场。