0

複数の行を挿入する単一のクエリ:

$My query = "INSERT INTO exp_channel_titles(channel_id,author_id,ip_address) VALUES(11,1,'203.109.119.2'),(11,1,'203.109.119.2'),(11,1,'203.109.119.2')";

私が欲しいもの:

自動インクリメント ID の配列。

私が使用しているものSELECT LAST_INSERT_ID()

ID は 1 つしか取得できません。最後に挿入されたフィールドのすべての自動インクリメント値の配列を取得するにはどうすればよいですか。

PS:複数の挿入クエリを起動できません。

4

2 に答える 2

2

最近のバージョンの MySQL で InnoDB を使用している場合は、LAST_INSERT_ID() と ROW_COUNT() を使用して ID のリストを取得できます。

InnoDB は、 innodb_autoinc_lock_mode が 0 (従来) または 1 (連続) に設定されている場合、一括挿入を行うときに AUTO INCREMENT の連続番号を保証します。したがって、LAST_INSERT_ID() から最初の ID を取得し、ROW_COUNT()-1 を追加して最後の ID を取得できます。

于 2014-05-14T11:57:13.630 に答える
1

これは、ID の降順に並べ替えられた最後の X レコードを取得します。ID が自動インクリメントされている場合、それらは最後に挿入された値になります。

SELECT * FROM exp_channel_titles
ORDER BY id DESC
LIMIT X
于 2014-05-14T11:58:42.677 に答える