这是对 mysql 选择查询的疑问让我用一个简单的例子来解释我的疑问,考虑这是我的查询
SELECT dbCountry from tableCountry
tableCountry 有字段 dbCuntryId、dbCountry 和 dbState 我的结果为
dbCountry 印度 美国 英国 肯尼亚 巴基斯坦
我需要结果
1 印度 2 美国 3 英格兰 4 肯尼亚 5 巴基斯坦
数字 12345 必须随着数据的增加而生成,它不是自动增量 ID。我怎么能得到它就像循环一样
这是对 mysql 选择查询的疑问让我用一个简单的例子来解释我的疑问,考虑这是我的查询
SELECT dbCountry from tableCountry
tableCountry 有字段 dbCuntryId、dbCountry 和 dbState 我的结果为
dbCountry 印度 美国 英国 肯尼亚 巴基斯坦
我需要结果
1 印度 2 美国 3 英格兰 4 肯尼亚 5 巴基斯坦
数字 12345 必须随着数据的增加而生成,它不是自动增量 ID。我怎么能得到它就像循环一样
你可以试试这个:
SELECT dbCountry,
(SELECT COUNT(*) FROM tableCountry t2 WHERE t2.dbCountry <= t1.dbCountry)
AS RowNum
FROM tableCountry t1
ORDER BY dbCountry
以下应该做你需要的。它使用一个为每一行递增和返回的变量:
SELECT
@rownum:=@rownum+1 number,
c.dbCountry
FROM
tableCountry c,
(SELECT @rownum:=0) r
如果您希望结果始终处于相同的顺序,您需要在查询中添加一个 order by 约束,例如,ORDER BY c.dbCountry
按国家名称排序。