(Другие Ответы работают слишком усердно. Все, что нужно, это UNIQUE
и некоторый простой код SQL.)
Если у вас есть значения $ x и $ y для вставки в таблицу, тогдаОбязательно вводите их в каноническом порядке:
INSERT INTO tbl (a, b)
VALUES ( LEAST($x, $y),
GREATEST($x, $y) )
И имеют
UNIQUE(a, b) -- or, better yet, PRIMARY KEY(a,b)
Обратите внимание, что значения (1,2) или (2,1), единственноеБудет вставлена строка (1,2)
Что нужно сделать, если вы попытаетесь вставить оба?Один войдет как (1,2);другой получит ошибку на INSERT
.Вы можете игнорировать ошибку с помощью INSERT IGNORE
.Если есть другие столбцы, требующие настройки, рассмотрите возможность использования INSERT .. ON DUPLICATE KEY UPDATE ..