3

次のように入力されたMySQLのテーブルがあります。ここで、ソートされた順序でレコードの行番号を選択する必要があります。たとえば、 で始まる単語の行番号は である'c'必要があります4

Words
=====
coffee
banana
apple
cherry
blackberry

次のクエリを試しましたが、間違った結果が得られます。これdictがテーブル名で、wordsが列名です。

SELECT @rownum:=@rownum + 1 id FROM (SELECT * FROM dict ORDER BY words) d,(SELECT @rownum:=0) r WHERE d.words LIKE CONCAT('c','%')

上記のクエリでは、外側のクエリの行番号を取得しています。しかし、内部クエリの行番号が必要です。私はそれを取得する方法がわかりません。

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

9

おそらくこれを試してください:

SET @rownum = 0;
SELECT id 
FROM (SELECT *, @rownum:=@rownum + 1 AS id FROM dict ORDER BY words) d
WHERE d.words LIKE CONCAT('c','%')

単一のクエリとして、これを試してください:

SELECT id 
FROM (SELECT *, @rownum:=@rownum + 1 AS id FROM dict, (SELECT @rownum:=0) r ORDER BY words) d
WHERE d.words LIKE CONCAT('c','%')
于 2011-11-22T22:58:15.547 に答える