как использовать if not exists при вставке строки mysql

#mysql

#mysql

Вопрос:

То, что я хочу сделать, это проверить, есть ли такая же строка, и если нет, вставить новую строку в таблицу.

В таком случае, как я могу использовать if not exists ?

 INSERT INTO `facebook` (`ID`,`fb_id`,`label_id`,`page_ids`,`token`) VALUES (NULL,'". $session['id'] ."','$id','','". $access_token ."')
 

Например, в этом запросе я хочу проверить, есть ли строка с той же записью label_id, и если нет, выполните этот запрос.

любая помощь?

Спасибо

Ответ №1:

Вы можете использовать INSERT IGNORE INTO ... синтаксис. При использовании этого повторяющиеся ключевые ошибки рассматриваются как предупреждения, и оператор вернется без вставки затронутой строки.

Комментарии:

1. Убедитесь, что у вас есть уникальный индекс или первичный ключ на label_id

Ответ №2:

 INSERT INTO `facebook` (`ID`,`fb_id`,`label_id`,`page_ids`,`token`) 
SELECT NULL, '". $session['id'] ."', '$id', '', '". $access_token ."'
FROM DUAL
WHERE NOT EXISTS (SELECT 'x' FROM facebook WHERE label_id = '$id')
 

Я думаю FROM DUAL , что это необязательно, но я парень из Oracle. 🙂

Ответ №3:

Пользователь вставляет в, чтобы игнорировать дубликаты:

 INSERT IGNORE INTO `facebook`
SET `ID` = null,
`fb_id` = '". $session['id'] ."',
`label_id` = '$id',
`page_ids`='',
`token`='". $access_token ."';