首页 > 解决方案 > 不正确的 CASE 语法

问题描述

这是我的查询:

SELECT
  CASE WHEN COUNT(o) > 0 THEN true ELSE false
FROM orders o
left join shop_order so on o.id=so.order_id
left join order_details od on so.id=od.shop_order_id
left join offers of on od.offer_id=of.id
WHERE of.offer_type_id=1
and of.type=2
and o.customer_id = ?1
and od.varient_id=?2

错误是:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'FROM orders o left join shop_order so on o.id=so.order_id left join order_det 附近使用的正确语法

标签: mysql

解决方案


case缺少end关键字。END在之前插入FROM

SELECT
  CASE WHEN COUNT(o) > 0 THEN true ELSE false END
FROM ...

MySQL 错误消息说“近”,但它们的真正意思是“就在之前”。


推荐阅读