1

テーブルの二重入力データを防ぎたい場合は、単純なクエリで値が存在するかどうかを確認できることを認識しています

SELECT `id` FROM TABLE WHERE `title` == 'test'

また、PHP は 1 つのクエリで複数の SQL リクエストを処理できないことも認識しています。たとえば、次のようになります。

SELECT `id` FROM TABLE WHERE `title` == 'test1'
SELECT `id` FROM TABLE WHERE `title` == 'test2'
SELECT `id` FROM TABLE WHERE `title` == 'test3'

したがって、解決策は、配列に配置し'test1'、それをループして、同じクエリを 3 回続けて実行することです。'test2''test3'

しかし、私が達成したいのは、同じデータを持つ別の行がまだ存在しない場合にのみ、行を挿入することです。このアプローチよりも良い方法があるはずです。

// if (!$row_exists) {
INSERT INTO table_name (a, b, c) VALUES (1, 2, 3) 
4

5 に答える 5

4

必要なすべての列に対して UNIQUE インデックスを作成します。また、MySQL はそれらの重複を許可しません。

于 2013-08-01T16:45:46.860 に答える
0

次を使用して、単一のステートメントでチェックを行うこともできます。

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

そして、挿入操作を実行します。

于 2013-08-01T16:59:02.757 に答える
0

以前は Replace Into が便利でした。それが役に立てば幸い

Replace Into table_name (a, b, c) VALUES (1, 2, 3);

参照: http://dev.mysql.com/doc/refman/5.0/en/replace.html

于 2013-08-01T16:47:29.423 に答える
0

SQL には、配列内のデータの一意性を管理する (重複を防ぐ) 非常に強力な方法があります。UNIQUE制約と主キーの機能を調査し、それらが問題の解決に役立つかどうかを確認することをお勧めします。

于 2013-08-01T16:47:32.743 に答える