Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 14.11.2011, 23:32   #1
Leximus
Пользователь
 
Регистрация: 18.09.2010
Сообщений: 85
По умолчанию Запрос на обновление или добавление!

Приветствую!

Мне нужно сделать запрос, который сначало проверит, есть ли строка, и если есть то обновит её, если нету то добавит.
Работать должно под MySQL

Вот получается что то типо этого

IF (SELECT param FROM config WHERE id =5) IS NULL THEN
INSERT INTO config (id, param) VALUES (5, 1)
ELSE
UPDATE config SET param = 1 WHERE id =5
END IF;

Что в этом запросе может быть не верно? А то запрос типо этого ошибку выдаёт.
Leximus вне форума Ответить с цитированием
Старый 15.11.2011, 00:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

EXISTS же есть в MYSQL
Код:
IF not exists (SELECT param FROM config WHERE id =5) THEN ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.11.2011, 01:53   #3
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
EXISTS же есть в MYSQL
Код:
IF not exists (SELECT param FROM config WHERE id =5) THEN ...
Такое в mysql без ХП не прокатит, зато есть конструкция

Код:
INSERT INTO `table` (`key_column`, `column`) VALUES (1, 'string')
ON DUPLICATE KEY UPDATE `column` = 'string'
Только таблица должна иметь Primary Key или Unique key, значение которого (есть оно или нет) будете передаваться в запрос

P.S. Вообще в вашем запросе ошибка в том, что вы в конце строк с Insert ... и Update ... не ставите точку с запятой
Cronos20 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос на обновление!!!!! Andel 013 Microsoft Office Access 2 24.12.2010 00:06
Запрос на обновление Andrey118 Microsoft Office Access 0 09.12.2010 21:55
запрос на обновление ww01031977 Microsoft Office Access 1 30.04.2010 16:07
запрос на обновление warshadow Microsoft Office Access 13 03.10.2009 16:56
Добавление и обновление в БД не всегда Jensi PHP 8 25.03.2009 16:04