Проблема
Я использую альтернативное имя столбца (псевдоним) в запросе, можно использовать псевдоним «given_name» в рамках ORDER BY, но я не в состоянии использовать его в качестве части предложение WHERE. WHERE «given_name» передается в результате запроса из моего контроля, и я не знаю фактического имени столбца, которое должно использоваться в условии WHERE.Колонка Алиас в выражении WHERE
Вопрос
- Это есть способ/взломать использовать псевдоним столбца в ИНЕКЕ?
- Есть ли способ найти имя столбца из псевдонима?
Research
После некоторых исследований он выглядит как псевдоним добавляются после после предложения WHERE.
Пример
SELECT profile.id AS id, given.name AS 'given_name', family.name AS 'family_name'
FROM green_profile profile
LEFT JOIN green_name given ON given.profileid = profile.id AND given.name_typeid = 0
LEFT JOIN green_name family ON family.profileid = profile.id AND family.name_typeid = 1
WHERE given_name LIKE 'levi%'
ORDER BY given_name DESC LIMIT 0 , 25
Спасибо, большое объяснение. Оба решения работают, однако после сопоставления с большой таблицей решение обзора обеспечивает гораздо лучшую производительность. –
Я подозревал, что это может быть так, так как для представления нужно только выполнить полный оператор выбора, а затем кэшировать и индексировать его для будущих вызовов (не знаете, как это работает). Я ожидаю, что производительность будет немного лучше, просто ссылаясь на исходные имена столбцов, и не имея дело со взглядом все вместе, но, надеюсь, не такая большая разница. –