选择多列的结果

时间:2015-09-07 06:08:39

标签: php mysql sql

我需要选中结果并检查多列。

 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多列。

如何简化查询?

2 个答案:

答案 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所写的内容。现场。

相关问题