我有一张桌子;汽车
汽车有很多领域:颜色、品牌、型号、撞车等
我查询表:
从颜色为红色的汽车中选择所有
然后我想查询该结果,以计算有多少崩溃了。(崩溃的字段是布尔值)
所以最后,我应该有的数据是红色汽车的所有字段,并且要知道x已经崩溃了
是否有可能只敲一下mysql的门就可以做到这一点?还是你必须做两个单独的查询?
谢谢
我有一张桌子;汽车
汽车有很多领域:颜色、品牌、型号、撞车等
我查询表:
从颜色为红色的汽车中选择所有
然后我想查询该结果,以计算有多少崩溃了。(崩溃的字段是布尔值)
所以最后,我应该有的数据是红色汽车的所有字段,并且要知道x已经崩溃了
是否有可能只敲一下mysql的门就可以做到这一点?还是你必须做两个单独的查询?
谢谢
一些数据:
mysql> select * from cars;
+-----+-------+---------+
| SNO | color | crashed |
+-----+-------+---------+
| 1 | red | 0 |
| 2 | red | 1 |
| 3 | red | 1 |
| 4 | blue | 1 |
| 5 | blue | 1 |
| 6 | blue | 1 |
| 7 | blue | 0 |
+-----+-------+---------+
和一个查询:
mysql> select color,sum(crashed),count(*) as total from cars group by color;
+-------+--------------+-------+
| color | sum(crashed) | total |
+-------+--------------+-------+
| blue | 3 | 4 |
| red | 2 | 3 |
+-------+--------------+-------+
2 rows in set (0.00 sec)
你可以试试:
SELECT * FROM cars WHERE color = "red" AND crashed = TRUE
或者无论你的崩溃指示器是什么,我只使用了一点 SQL,但我相信这个查询会显示所有红色的汽车,并且崩溃的值为 true。
是的,你会使用一个WHERE
子句。
SELECT * FROM cars WHERE Color = 'red' AND Crashed = true
或者如果你想按颜色崩溃,
SELECT color, count(*) FROM Cars WHERE crashed = true GROUP BY color;
或者,正如你所澄清的,SELECT crashed, count(*) as yourval FROM Cars WHERE color = 'Red' GROUP BY crashed