powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с IF
13 сообщений из 13, страница 1 из 1
Проблема с IF
    #33484626
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!

Может вопрос и глупый но...
На MS SQL есть такой код:

declare @id int
declare @nameid varchar(255)
set @id=123
set @nameid='qwerty'
if exists (select nameid from ttest where id=@id)
begin
update ttest set nameid=@nameid where id=@id
end
else
begin
insert into ttest (id,nameid) values (@id,@nameid)
end

Собственно вопрос: как будет выглядеть данный код на MySQL, точнее конструкция IF?
...
Рейтинг: 0 / 0
Проблема с IF
    #33484665
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблема с IF
    #33484697
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Berkut http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html

Спасибо..., но там я уже был... не помогает...
...
Рейтинг: 0 / 0
Проблема с IF
    #33484862
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори, сразу в код не всматривался.

Средствами MySQL такое нельзя сделать. Если только в с помощью хранимых процедур в 5-ой версии, но к сожалению работать не приходилось.

Если приложение веб-ориентированное, то PHP поможет.
...
Рейтинг: 0 / 0
Проблема с IF
    #33484864
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MySQL
if exists (select nameid from ttest where id=@id)
такого нельзя делать, синтаксис не походит. Конструкция IF в запросах возможна только в SELECT, а не сама посебе.
...
Рейтинг: 0 / 0
Проблема с IF
    #33484884
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин КВ MySQL
if exists (select nameid from ttest where id=@id)
такого нельзя делать, синтаксис не походит. Конструкция IF в запросах возможна только в SELECT, а не сама посебе.

Ох, Вы меня не порадовали... А как-нибудь обойти это средствами SQL можно: очень уж не хочется проверять условие на клиенте...
...
Рейтинг: 0 / 0
Проблема с IF
    #33484890
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуйтесь хранимыми процедурами...
Либо конструкцией
Insert ...
On update ....
select ...
...
Рейтинг: 0 / 0
Проблема с IF
    #33484894
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав?
...
Рейтинг: 0 / 0
Проблема с IF
    #33484896
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BerkutСори, сразу в код не всматривался.

Средствами MySQL такое нельзя сделать. Если только в с помощью хранимых процедур в 5-ой версии, но к сожалению работать не приходилось.

В 5-й как раз и смотрю...

BerkutЕсли приложение веб-ориентированное, то PHP поможет.

Это понятно... Очень уж хотелось сделать это средствами SQL:-(
...
Рейтинг: 0 / 0
Проблема с IF
    #33484937
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlГм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав?

Почти. Т.е. данный случай совпадает полностью. Проблема в том, что в моем примере на месте UPDATE или INSERT могут стоять несколько команд. Я попытался максимально упростить пример...
...
Рейтинг: 0 / 0
Проблема с IF
    #33484945
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пересвет DocAlГм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав?

Почти. Т.е. данный случай совпадает полностью. Проблема в том, что в моем примере на месте UPDATE или INSERT могут стоять несколько команд. Я попытался максимально упростить пример...
В любом случае синтаксис приведенный не пройдет. Если вариантов больше, чем в примере - напишите хранимую процедуру и в ней проверяйте все нужные условия...
...
Рейтинг: 0 / 0
Проблема с IF
    #33484970
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм... Ну тогда, если вам при этом не хватает возможностей CONSTRAINT , то видимо следует думать о триггерах.
...
Рейтинг: 0 / 0
Проблема с IF
    #33484993
Пересвет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин КВ любом случае синтаксис приведенный не пройдет. Если вариантов больше, чем в примере - напишите хранимую процедуру и в ней проверяйте все нужные условия...

Понятно. Всем спасибо за помощь.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с IF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]