оптимизация MySQL, если - иначе зависит от моего случая - PullRequest
0 голосов
/ 03 августа 2011

Я очень новичок в MySQL.простите меня, если я просто задам вопрос новичку здесь.

в моем случае я хочу сделать ветвление в mysql следующим образом:

  1. если office_id не равен NULL, то is_invited = 1
  2. , в противном случае, если office_id = '0000', тогда is_invited = 1
  3. else is_invited = 0

после того, как я увидел @thomasrutter ответ здесь " если запрос в mysql " ..Я сделал запрос, как это на MySQL:

select IF(y.office_id IS NOT NULL, 1, IF(y.office_id = '0000', 1, IF(y.office_id IS NULL, 0, 1))) as is_invited

мой вопрос: могу ли я сделать запрос более оптимизированным (с точки зрения производительности)

большое спасибо:)

1 Ответ

0 голосов
/ 03 августа 2011

Ваша логика здесь не имеет смысла.

Случай 2 всегда выполняется / никогда не достигается. Если office_id не является нулевым, то вы уже присваиваете is_invited = 1. Таким образом, office_id = '0000' никогда не будет проверяться, поскольку оно всегда не равно нулю. Действительно, ваша логика должна быть просто IF(y.office_id IS NOT NULL, 1, 0) as is_invited

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