Запрос в Mysql

lbv

Guest
Запрос в Mysql

Надо написать запрос UPDATE...

$sql="UPDATE `stroki` SET str='$novay_str' WHERE str='$str' "

Но есть условие!
Нужно произвести обновление только если нет записи, в которой в поле str уже есть значение $novay_str.
Я пытался сам составить такой запрос, но не получается...

Я написал вот такую лабуду, которая не работает...

$sql="UPDATE `stroki` SET str='$novay_str' WHERE str='$str' AND (SELECT COUNT(*) FROM `stroki` WHERE str='$novay_stroka')=0 "

Нужный мне запрос я хочу добавить в цикл do-while, что UPDATE обязательно произошел...

Кто может помогите, не очень разобрался в составных запросах...
 

Alexandre

PHPПенсионер
есть два варианта:
1) разбить запрос на две части и сперва проверять SELECT count(*) есть ли такая запись и в результате либо добавлять, либо делать апдейт

2) использовать sql команду
REPLACE stroki SET str='xxxxxx'
 

lbv

Guest
Originally posted by asm
сделай str уникальным
В смысле свойство поля?

-~{}~ 26.11.04 19:39:

Originally posted by Alexandre
есть два варианта:
1) разбить запрос на две части и сперва проверять SELECT count(*) есть ли такая запись и в результате либо добавлять, либо делать апдейт

2) использовать sql команду
REPLACE stroki SET str='xxxxxx'
1 Отпадает.
 

asm

Пофигист
lbv
Если я правильно понял тебе нужно что бы str был уникальным сделай его ключем или уникальным в БД в этом случае UPDATE не пройдет если в str уже есть такое значение...
 

lbv

Guest
Originally posted by asm
lbv
Если я правильно понял тебе нужно что бы str был уникальным сделай его ключем или уникальным в БД в этом случае UPDATE не пройдет если в str уже есть такое значение...
Это сильно замедлит работу?
 
Сверху