-1

我有一张桌子;汽车

汽车有很多领域:颜色、品牌、型号、撞车等

我查询表:

从颜色为红色的汽车中选择所有

然后我想查询该结果,以计算有多少崩溃了。(崩溃的字段是布尔值)

所以最后,我应该有的数据是红色汽车的所有字段,并且要知道x已经崩溃了

是否有可能只敲一下mysql的门就可以做到这一点?还是你必须做两个单独的查询?

谢谢

4

3 回答 3

2

一些数据:

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)
于 2013-05-15T17:32:41.813 回答
0

你可以试试:

SELECT * FROM cars WHERE color = "red" AND crashed = TRUE

或者无论你的崩溃指示器是什么,我只使用了一点 SQL,但我相信这个查询会显示所有红色的汽车,并且崩溃的值为 true。

于 2013-05-15T17:28:36.807 回答
0

是的,你会使用一个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

于 2013-05-15T17:29:09.303 回答