我有这个sql查询(如下),它工作得很好,但我需要修改它,只选择第一个字符为$a的记录。我试过一些类似于a%的变化,但运气不好。我处境的症结似乎是化名。如果在订单前使用WHERE name,比如'A%',则会出错。这似乎是个合乎逻辑的地方。有什么建议吗?

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

最佳答案

我认为您不能在WHERE上使用别名进行比较。试试这个:

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
WHERE IF(company_name <> '', company_name, PC_last_name) LIKE 'A%'
ORDER BY name

关于mysql - MYSQL-按首字母排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9485176/

10-14 13:50
查看更多