MySQL选择全部并添加自定义字段

时间:2015-02-14 21:49:58

标签: mysql

我当前的SQL查询是这样的:

SELECT * FROM devices GROUP BY name ORDER BY number DESC LIMIT 0,100

我使用SELECT *因为我需要大部分字段,而且我不想逐个添加所有字段名称。 (在这个问题上,表现并不重要)

但我也在这样的结果中添加了一个自定义字段:

SELECT COUNT(*) AS "times_added", * FROM devices GROUP BY name
      ORDER BY login_number DESC LIMIT 0,100

但后一种查询不起作用。我可以添加计数字段并从表中获取所有字段吗?

3 个答案:

答案 0 :(得分:1)

使用

SELECT devices.*, COUNT(*) ...

答案 1 :(得分:1)

reference documentation表示:

  

使用不合格的*与选择列表中的其他项目可能   产生一个解析错误。要避免此问题,请使用合格的   tbl_name。*参考

所以:

SELECT COUNT(*) AS "times_added", devices.* 
FROM devices 
GROUP BY name
ORDER BY login_number DESC 
LIMIT 0,100

答案 2 :(得分:0)

如果您希望所有具有计数值的行都尝试此查询

SELECT *,
(SELECT COUNT(*) FROM devices)AS times_added
FROM devices 
GROUP BY NAME
ORDER BY login_number DESC 
LIMIT 0,100

如果您想要第一行值和计数值,请尝试此

SELECT *, COUNT(*) AS times_added
FROM devices 
GROUP BY NAME
ORDER BY login_number DESC