як выкарыстоўваць, калі не існуе пры ўстаўцы радкі 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, крыніца

Карыстальнік Уставіць 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
дададзена