0

这是对 mysql 选择查询的疑问让我用一个简单的例子来解释我的疑问,考虑这是我的查询 SELECT dbCountry from tableCountry

tableCountry 有字段 dbCuntryId、dbCountry 和 dbState 我的结果为

dbCountry
印度
美国
英国
肯尼亚
巴基斯坦

我需要结果

1 印度
2 美国
3 英格兰
4 肯尼亚
5 巴基斯坦

数字 12345 必须随着数据的增加而生成,它不是自动增量 ID。我怎么能得到它就像循环一样

4

2 回答 2

4

你可以试试这个:

SELECT dbCountry,
(SELECT COUNT(*) FROM tableCountry t2 WHERE t2.dbCountry <= t1.dbCountry) 
AS RowNum
FROM tableCountry t1
ORDER BY dbCountry
于 2010-03-27T08:11:40.897 回答
3

以下应该做你需要的。它使用一个为每一行递增和返回的变量:

SELECT
  @rownum:=@rownum+1 number,
  c.dbCountry
FROM
  tableCountry c,
  (SELECT @rownum:=0) r

如果您希望结果始终处于相同的顺序,您需要在查询中添加一个 order by 约束,例如,ORDER BY c.dbCountry按国家名称排序。

于 2010-03-27T08:08:53.490 回答