如何从mysql编号数据

时间:2010-03-27 08:02:11

标签: mysql row-number

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

tableCountry有字段dbCuntryId,dbCountry和dbState 我有结果

dbCountry 
india 
america 
england
kenya 
pakisthan

我需要结果

1  india 
2  america 
3  england
4  kenya 
5  pakisthan

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

2 个答案:

答案 0 :(得分:4)

你可以试试这个:

SELECT dbCountry,
(SELECT COUNT(*) FROM tableCountry t2 WHERE t2.dbCountry <= t1.dbCountry) 
AS RowNum
FROM tableCountry t1
ORDER BY dbCountry

答案 1 :(得分:3)

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

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

如果您希望结果始终采用相同的顺序,则需要通过约束向查询添加订单,例如,ORDER BY c.dbCountry按国家/地区名称排序。