0

これは mysql select クエリに関する疑問です。これが私のクエリであると考えて、簡単な例で疑問を解消させてください。 SELECT dbCountry from tableCountry

tableCountry にはフィールド dbCuntryId、dbCountry、および dbState があり、結果は次のとおりです

デシベル国
インド
アメリカ
イングランド
ケニア
パキスタン

結果が必要です

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 c.dbCountry、国名で並べ替えるなど、クエリに order by 制約を追加する必要があります。

于 2010-03-27T08:08:53.490 に答える