корректный ли запрос, запрос с условиями

Marquis

Новичок
корректный ли запрос, запрос с условиями

Есть запрос:
Код:
SELECT
  field1 AS new_field1,
  field2 AS new_field2,
  field3 AS new_field3,
  if ( (field4 IS NOT NULL), field4 , field1 ) AS new_field4,
  if ( (select new_field4 = 'value'), true , false ) AS new_field5
FROM
 tbl
WHERE field2 = 'value'
смущает условие "if ( (select new_field4 = 'value'), true , false ) AS new_field5" т.е. обращение к алису, корректно ли это?
Если запрос корректен то какая должна быть версия MySQl для стабильной работы подобной конструкции.
 

alpine

Новичок
Marquis
смущает условие "if ( (select new_field4 = 'value'), true , false ) AS new_field5" т.е. обращение к алису, корректно ли это?
Не корректно мягко сказано. Работать не будет.
Просто интересно, а в какой БД этот запрос работает?
 

Фанат

oncle terrible
Команда форума
alpine
А почему некорректно?
А в пхп $answer=($yes==$no) - это некорректно?
 

Фанат

oncle terrible
Команда форума
if ведь, в данном контексте - это просто функция. такая же, как substring, например.
просто она не вырезает подстроку, а производит сравнение двух операндов.
точно так же, как substring, возвращает результат своей работы, причём даже не в булевом виде
 

alpine

Новичок
Фанат
Ну с ифом все понятно, конкретно вот эта часть (select new_field4 = 'value') смутила.
 

alpine

Новичок
Marquis
ну осталось только найти научное объяснение этому явлению и тему можно закрывать :D
 
Сверху