|
|
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
День добрый! Может вопрос и глупый но... На 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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 12:40:32 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Berkut http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html Спасибо..., но там я уже был... не помогает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 12:55:02 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Сори, сразу в код не всматривался. Средствами MySQL такое нельзя сделать. Если только в с помощью хранимых процедур в 5-ой версии, но к сожалению работать не приходилось. Если приложение веб-ориентированное, то PHP поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:31:00 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
В MySQL if exists (select nameid from ttest where id=@id) такого нельзя делать, синтаксис не походит. Конструкция IF в запросах возможна только в SELECT, а не сама посебе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:31:18 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Валентин КВ MySQL if exists (select nameid from ttest where id=@id) такого нельзя делать, синтаксис не походит. Конструкция IF в запросах возможна только в SELECT, а не сама посебе. Ох, Вы меня не порадовали... А как-нибудь обойти это средствами SQL можно: очень уж не хочется проверять условие на клиенте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:37:14 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Пользуйтесь хранимыми процедурами... Либо конструкцией Insert ... On update .... select ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:39:08 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Гм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:40:44 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
BerkutСори, сразу в код не всматривался. Средствами MySQL такое нельзя сделать. Если только в с помощью хранимых процедур в 5-ой версии, но к сожалению работать не приходилось. В 5-й как раз и смотрю... BerkutЕсли приложение веб-ориентированное, то PHP поможет. Это понятно... Очень уж хотелось сделать это средствами SQL:-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:40:50 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
DocAlГм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав? Почти. Т.е. данный случай совпадает полностью. Проблема в том, что в моем примере на месте UPDATE или INSERT могут стоять несколько команд. Я попытался максимально упростить пример... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:52:25 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Пересвет DocAlГм. При беглом взгляде, показалось, что ваша проверка функционально эквивалентна использованию REPLACE . Я прав? Почти. Т.е. данный случай совпадает полностью. Проблема в том, что в моем примере на месте UPDATE или INSERT могут стоять несколько команд. Я попытался максимально упростить пример... В любом случае синтаксис приведенный не пройдет. Если вариантов больше, чем в примере - напишите хранимую процедуру и в ней проверяйте все нужные условия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:54:04 |
|
||
|
Проблема с IF
|
|||
|---|---|---|---|
|
#18+
Гм... Ну тогда, если вам при этом не хватает возможностей CONSTRAINT , то видимо следует думать о триггерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:58:11 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33484970&tid=1853165]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 515ms |

| 0 / 0 |
