問題
クエリで代替列名(エイリアス)を使用しています。エイリアス「given_name」をORDER BYの一部として使用できますが、WHERE句の一部として使用できません。WHERE "given_name"は、私の制御できない要求の結果として渡され、WHERE条件で使用する必要がある実際の列名がわかりません。
質問
- WHERE句で列エイリアスを使用する方法/ハックはありますか?
- エイリアスから列名を見つける方法はありますか?
リサーチ
調査の結果、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