执行“简单”的SQL查询

时间:2012-03-09 13:56:45

标签: mysql sql postgresql

这是我表格中的数据:

id      name       surname       place
1       test1         isdad      YES
2       test2       spreda       YES
3       test3          me        NO
4       test4      smallvile     YES

我想得到什么,所有的地方='是'。所以Ids

1
2
4

并且结果计数为3.我想将该数字附加到结果的末尾,因此结果应如下所示:

1
2
4
3

3 个答案:

答案 0 :(得分:2)

几乎肯定有更好的方法可以做到这一点。那就是说,你可以这样做:

SELECT id FROM myTable WHERE place = 'YES'
UNION ALL
SELECT COUNT(*) FROM myTable WHERE place = 'YES'

UNION ALL会将结果编号附加为新行,而不是尝试将其添加为另一列。

请不要这样做;结果将是混合的,它坚定地蔑视良好的软件设计,并且对于后来出现并且必须处理这段代码的任何人都会感到困惑。

答案 1 :(得分:1)

在MySQL中,您可以使用WITH ROLLUP

在单个查询中执行与此类似的操作
select id, count(*) 
from myTable
where place='YES'
group by id 
with rollup

答案 2 :(得分:-1)

SELECT id FROM TABLE WHERE place='YES'

将返回带有你想要的ID,如果你使用php或c ++ / c#

,rowcount将存储计数