як використовувати, якщо не існує під час вставки рядка mysql

Те, що я хочу зробити, - це перевірити, чи існує той самий рядок, і, якщо не вставляти новий рядок до таблиці.

У такому випадку, як я можу використовувати , якщо не існує ?

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

Наприклад, у цьому запиті я хочу перевірити, чи є рядок з тією ж запису label_id, і якщо ні, виконайте цей запит.

будь-яка допомога?

Дякую

1

4 Відповіді

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

2
додано
Переконайтеся, що у вас є унікальний індекс або основний ключ на label_id
додано Автор Mikhail, джерело

User Insert Into, щоб ігнорувати дублікати:

INSERT IGNORE INTO `facebook`
SET `ID` = null,
`fb_id` = '". $session['id'] ."',
`label_id` = '$id',
`page_ids`='',
`token`='". $access_token ."';
0
додано
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. :)

0
додано
Це правильне напрям ;-)
додано Автор Devart, джерело

Ви повинні поставити UNIQUE обмеження на поле label_id, а потім дотримуватися інструкцій тут .

0
додано