0

このコードを編集して、2 番目に低い 'id' 値を持つ $name を選択するにはどうすればよいですか?

SELECT * FROM users WHERE name='$name' ORDER BY id ASC LIMIT 1

私はそれが次のようなものかもしれないと思った:

SELECT * FROM users WHERE name='$name' ORDER BY id ASC + 1 LIMIT 1

しかし、それは正しくありませんでした。何か案は?ありがとう。

4

4 に答える 4

2

試す

  SELECT * 
    FROM users 
   WHERE name = '$name' 
ORDER BY id ASC 
   LIMIT 1, 1

ドキュメント:

定義:制限は、MySQL クエリの結果を指定された範囲内に制限するために使用されます。これを使用して、最初の X 件の結果を表示したり、X ~ Y の結果の範囲を表示したりできます。これは Limit X, Y と表現され、クエリの最後に含まれます。X は開始点 (最初のレコードが 0 であることを思い出してください) で、Y は期間 (表示するレコード数) です。

例 :

SELECT * FROM `your_table` LIMIT 0, 10 

これにより、データベースからの最初の 10 件の結果が表示されます。

SELECT * FROM `your_table` LIMIT 5, 5 

これにより、レコード 6、7、8、9、および 10 が表示されます。

于 2012-08-01T11:38:09.913 に答える
2

次のようにオフセットを指定します。

SELECT * FROM users WHERE name='$name' ORDER BY id ASC LIMIT 1 OFFSET 1

またはそのように:

SELECT * FROM users WHERE name='$name' ORDER BY id ASC LIMIT 1, 1

後者の場合、最初の数値はオフセットで、2 番目の数値は返される要素の数です。

以下も参照してください。

于 2012-08-01T11:34:44.090 に答える
1

limit 句でオフセットを指定できます。

SELECT * FROM users WHERE name='$name' ORDER BY id ASC LIMIT 1, 1
于 2012-08-01T11:34:53.330 に答える
0
SELECT * FROM users WHERE name='$name' ORDER BY id ASC LIMIT 1,1;
于 2012-08-01T11:34:45.847 に答える