我当前的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
但后一种查询不起作用。我可以添加计数字段并从表中获取所有字段吗?
答案 0 :(得分:1)
使用
SELECT devices.*, COUNT(*) ...
答案 1 :(得分:1)
使用不合格的*与选择列表中的其他项目可能 产生一个解析错误。要避免此问题,请使用合格的 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