问题
我在查询中使用备用列名(别名),我可以将别名“given_name”用作 ORDER BY 的一部分,但无法将其用作 WHERE 子句的一部分。WHERE "given_name" 是由于我无法控制的请求而传入的,我不知道应该在 WHERE 条件中使用的实际列名。
问题
- 有没有办法/hack 在 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