You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询WHERE关键字问题求助:含错误SQL语句需排查

排查MySQL查询WHERE子句的错误

嘿,我一眼就找到问题啦!你的SQL语句末尾误用了WHEN关键字,这里应该用WHERE来做全局行过滤,这就是phpMyAdmin报错的根源。

问题分析

在MySQL语法里:

  • WHEN只能用在CASE表达式(比如你语句里判断客户状态的部分)或者JOIN ... ON的关联条件中;
  • 如果要过滤整个查询结果里的行,必须使用WHERE子句。

你的语句最后想筛选出delete_status = 0的活跃客户,所以这里的WHEN完全不符合语法规范,换成WHERE就能解决问题。

修正后的完整查询语句

SELECT 
    c.name as "Client Name",
    c.email as "Email",
    c.phone as "Phone",
    cnt.name as "Country",
    c.street as "Street",
    c.city_id as "City/Suburb",
    st.name as "State",
    c.zip_code as "Postcode",
    "" as "Total Paid",
    "" as "Total Owed",
    CASE WHEN c.delete_status = 1 THEN "Not Active" ELSE "Active" END as "Status"
FROM customer c
LEFT JOIN shipping_address s ON c.id = s.customer_id
LEFT JOIN states st ON st.id = c.state_id
LEFT JOIN countries cnt ON cnt.id = c.country_id
WHERE c.delete_status = 0

内容的提问来源于stack exchange,提问作者DhavalThakor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:21:25