gpt4 book ai didi

mysql - 使用 WHERE 子句在 MySQL 中进行排名

转载 作者:行者123 更新时间:2023-11-29 12:47:36 25 4
gpt4 key购买 nike

我的数据库表gainfinal由三列组成;国家代码、年份和值。我想根据选择年份 = 2000 的所有值对国家/地区代码进行排名。查询是这样的:

SELECT `countrycode` ,  `values` , 
@curRank := @curRank + 1 AS rank
FROM `gainfinal` , SELECT @curRank := 0) r
WHERE `year` = '2000'
ORDER By `values`

它说:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'SELECT @curRank := 0) r WHERE year = '2000' ORDER By values LIMIT 附近使用的正确语法0 , 30' 在第 3 行。请你帮帮我好吗?

最佳答案

您需要额外的括号:

SELECT countrycode, `values`, 
@curRank := @curRank + 1 AS rank
FROM gainfinal CROSS JOIN
(SELECT @curRank := 0) vars
WHERE year = 2000
ORDER By `values`;

您应该避免在 from 子句中使用逗号。因此,这里使用交叉连接来代替。

还有。您只需转义具有不常见字符(例如空格)或保留字(例如values)的标识符。我的建议是避免使用此类标识符。因此,我建议您将 values 的名称更改为更安全的名称。

此外,您应该只对字符串和日期常量使用单引号。我认为 year 是数字,因此我删除了单引号。

关于mysql - 使用 WHERE 子句在 MySQL 中进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25229299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com