если заявления в MySQL? - PullRequest
       10

если заявления в MySQL?

0 голосов
/ 10 октября 2008

есть ли оператор if, когда дело доходит до операторов запроса mysql?

когда я обновляю запись таблицы, я хочу обновлять только определенные столбцы, если у них есть значение, которое нужно обновить.

например, я хочу функцию таблицы обновления, и есть таблица для добровольцев и таблица для людей, которые просто хотят обновления по электронной почте.

Я хочу использовать ту же функцию (будет функция, которая обрабатывает только запросы upd), и возможно ли это сделать теоретически ...

если вы обновляете таблицу добровольцев, обновляйте только эти столбцы, если mailing_list, то обновляйте эти

я знаю, что это можно сделать, используя оператор if с двумя операторами запроса, в зависимости от того, какую таблицу вы обновляете, но мне интересно, можно ли использовать только один оператор запроса с условиями в нем для обновления соответствующие столбцы в таблице.

это может звучать как то, о чем вы мечтали, дайте мне знать.

спасибо.

Ответы [ 2 ]

3 голосов
/ 10 октября 2008

Я думаю, что это должно работать:

UPDATE volunteer, people
SET volunteer.email = 'me@email.com',
    people.email = 'other@gmail.com',
    people.first_name = 'first',
WHERE people.id = 2 AND volunteer.id = 5;

Я получил это из синтаксиса обновления на веб-сайте MySQL.

0 голосов
/ 10 октября 2008

Вы могли бы сделать это одним запросом, но для меня не имеет смысла, почему вы захотите. Может быть, опишите аргументы для желаемой функции и какой эффект они будут иметь?

Вы можете условно обновить что-то вроде этого:

update tablereferences
    set foo.bar = if( somebooleanexpression, newbarvalue, foo.bar ),
        baz.quux = if( somebooleanexpression, newbazvalue, baz.quux )
    where ...

позволяет вам использовать тот же запрос, но контролировать, какие таблицы обновляются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...