0

id列とを含むテーブルがありますname。私の焦点はの順序ですid。実際、行を選択したい場合は、番号の順序がid壊れています。私の例を見てください:

// mytable
+----+-----------+
| id |    name   |
+----+-----------+
| 1  |   ali     |
| 2  |   jack    |
| 3  |   peter   |
| 5  |   steve   |
| 6  |   lenord  |
| 7  |   jack    |
| 9  |   fered   |
+----+-----------+

select where id=5今、私はしたいですselect where id=9id=4id=8が削除されているためです。

編集:私はこの出力が欲しい:

// mytable
+----+-----------+
| id |    name   |
+----+-----------+
| 5  |   steve   |
| 9  |   fered   |
+----+-----------+

それは可能ですか?

4

3 に答える 3

0

実際には、欠落している ID の1 つ上の ID を持つレコードが必要です。そのため、存在しないようidなレコードを検索する必要があります(これは常に最小の ID の場合であるため、明示的に除外する必要があります) 。id-1id=1

SELECT *
FROM the_table tt
WHERE id > 1
AND NOT EXISTS (
   SELECT *
   FROM the_table nx
   WHERE nx.id = tt.id -1
   );
于 2015-06-24T11:27:12.277 に答える