Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с IF / 13 сообщений из 13, страница 1 из 1
16.01.2006, 12:40:32
    #33484626
Пересвет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с IF
День добрый!

Может вопрос и глупый но...
На 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
16.01.2006, 12:47:31
    #33484665
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с IF
...
Рейтинг: 0 / 0
16.01.2006, 12:55:02
    #33484697
Пересвет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с IF
Berkut http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html

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

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

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

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

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

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

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

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

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

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

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


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