我有这个SQL查询(下),它的工程很好,但我需要修改它只选择记录与$第一个字符。我尝试了一些LIKE A%的变体,但没有运气。我的情况的症结似乎是名称别名。如果我在ORDER之前使用WHERE名称LIKE'A%',我收到错误。这似乎是一个合乎逻辑的地方。有什么建议么?MYSQL - 按首字母排序
SELECT
IF(company_name <> '', company_name, PC_last_name) AS name,
customer_id AS id,
company_name AS cn,
PC_first_name AS pcf,
PC_last_name AS pcl,
primary_phone
FROM sales_customer
ORDER BY name
宾果!工作完美。我知道这与别名有什么关系,为什么它不能正确使用别名? – 2012-02-28 16:06:59
从MySQL手册* apud * [这个答案](http://stackoverflow.com/a/200203/825789):不允许在WHERE子句中引用列别名,因为列值可能不是但在执行WHERE子句时会被确定。请参见[请参见第B.1.5.4节“列别名问题”](http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html)。 – bfavaretto 2012-02-28 16:14:37
感谢您的信息!现在我明白了。 – 2012-02-28 18:23:21