Условия в запросах

Дед Анвирыч

Новичок
Условия в запросах

Можноли одним запросом реализовать что-то вроде:
PHP:
if ((SELECT COUNT(*) FROM table WHERE a=0)==0){
INSERT INTO table (a, b, c) VALUES ('0', '1' , '2')
}else{
UPDATE table SET b=1 WHERE a=0
}
 

Апельсин

Оранжевое создание
Тони REPLACE не покатит, т.к. ему надо, что бы запросы выполнялись в зависимости от результата SELECT.
 

tony2001

TeaM PHPClub
>Если есть запись - апдейтить, если нет - добавить
ну это и есть REPLACE по идее.
 

Дед Анвирыч

Новичок
Прошу прощения, но не совсем понял значени енеобязательного INTO в синтаксесе:
[SQL]
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
[/SQL]
 

Апельсин

Оранжевое создание
это значит что ты его можешь указывать, а можешь не указывать, суть запроса от этого не поменяется.
 

Дед Анвирыч

Новичок
И вроде как выходит, что изменяить значение можно только тех полей которые проверяются... Т.е. если мне надо проверить на наличие записи со значениями полей a, b то и значения я только их изменить могу? Так?
Т.е. повеить a, b и зменить с уже не выйдет?
 

Дед Анвирыч

Новичок
Т.е. Я хочу найти есть ли запсь с a=1, b=2 и установить c=3
Либо просто добавить запись a=1, b=2, c=3 если такой записи нет
 

Апельсин

Оранжевое создание
> изменяить значение можно только тех полей которые проверяются...

ты не правильно понял. При REPLACE данные либо обновляются, если проверяемые поля совпадают, либо добавляется новая строка.
 

Дед Анвирыч

Новичок
Апельсин, любезный, объясни чайнику как реализовать мой пример, а то че-то я из мануала нифига не понял :(
 

Дед Анвирыч

Новичок
Понятно, спасибо. А то я почему-то подумал что нужно вручную указать поля по каоторым сравнивать
 
Сверху