不确定如何解释这个但是想象你有一个包含许多布尔字段的表……
表:汽车
列:
Automatic: boolean
Silver: boolean
American: boolean
Noisy: boolean
Smelly: boolean
fast: boolean
(愚蠢的田地,其中大部分都不会在现实中沸腾,只是一个例子)
我需要做的是生成这些字段的列表,每个字段旁边有一些搜索结果,所以如果数据库中有100辆银色汽车和57辆美国汽车,那么列表可能看起来有点像这样……
Automatic: (150)
Silver (100)
American (57)
Noisy (120)
Smelly (124)
fast (45)
所以,它基本上就像一个过滤器列表,如果用户点击“白银”,他们会缩小搜索范围,只显示银色汽车,他们知道他们将得到100个结果.然后,所有其他过滤器旁边的数字将减少,因为我们已经过滤掉所有非银色的汽车.
计算一个场的出现很容易……
SELECT COUNT(*)FROM CARS WHERE Automatic = true;
……例如,我会给第一行.但是我不想为每个过滤器做一个sql语句,因为它们可能超过30个.我见过很多网站这样做,所以它必须比我想象的要容易.
真的很感激任何帮助:)
乔恩
解决方法
假设该位为1/0,则可以使用SUM而不是COUNT:
SELECT SUM(Automatic) as Automatic,SUM(Smelly) as Smelly,SUM(American) as Japanese FROM ...