我有一个包含user_id
和last_updated
SELECT user_id, MAX(last_updated) as timestamp
FROM online
WHERE user_id > 0
GROUP_BY user_id
我收到此错误
您的SQL语法有错误; 检查对应的手册 您的MySQL服务器版本 在'GROUP_BY附近使用正确的语法 第1行的user_id'
SELECT user_id, MAX(last_updated) as timestamp
FROM online
WHERE user_id > 0
GROUP_BY user_id
有人建议我使用上面的查询,所以我不确定为什么我会收到此错误
我用Google搜索group_by
并且看不出我做错了什么。我想也许是as timestamp
但不确定!
答案 0 :(得分:5)
GROUP BY
而非GROUP_BY
...
SELECT user_id, MAX(last_updated) as timestamp
FROM online
WHERE user_id > 0
GROUP BY user_id
根据评论,还要注意 timestamp 是一个保留字。您应该使用别名(即max_last_updated
)或用反引号(即`timestamp`)来逃避别名(<{p>)
答案 1 :(得分:1)
从
更改代码SELECT user_id, MAX(last_updated) as timestamp
FROM online WHERE user_id > 0 GROUP_BY user_id
到
SELECT user_id, MAX(last_updated) as `timestamp`
FROM online WHERE user_id > 0 GROUP BY user_id
保留字(例如timestamp
)只能使用反引号'''包含的标识符。
另外GROUP_BY
- &gt; GROUP BY
*(两个字,SQL关键字中永远不会有'_')*。
更好的是不使用保留字,因为它们让人感到困惑(并且反击让我的头部受伤)
答案 2 :(得分:0)
timestamp
是MySQL使用的数据类型,尝试将其更改为其他内容。