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

SQL查询报mismatched input 'IN' expecting {<EOF>, ';'}错误求助

SQL报错排查方案

该错误属于SQL语法解析错误,解析器扫描到IN关键字时,按照前文语句结构判断当前位置应为语句结束标识()或分号,因此判定语法不合法,可按以下顺序排查:

  • 检查语句前后是否存在残留非法字符:复制粘贴SQL时很容易带入未删除的半截SQL片段、不可见特殊字符(如零宽空格、异常换行符),可先将整段SQL复制到纯文本编辑器中清空格式后再运行。
  • 补充语句结束符:若你使用的SQL执行环境要求单条语句必须以分号结尾,直接在语句末尾添加;即可,修改后的参考语句如下:
SELECT *
FROM drug_exposure
WHERE drug_concept_id IN (1111,1112,95768,1145689)
OR drug_source_concept_id IN (1111,1112,95768,1145689);
  • 检查执行环境兼容性:部分低版本数据库或小众SQL引擎对多个OR连接的IN子句支持存在缺陷,可改写为兼容度更高的判断逻辑:
SELECT *
FROM drug_exposure
WHERE EXISTS (
    SELECT 1 
    FROM (VALUES (1111),(1112),(95768),(1145689)) AS target_ids(id)
    WHERE target_ids.id = drug_concept_id OR target_ids.id = drug_source_concept_id
);
  • 检查是否多语句未分隔:若你是将多条SQL放在同一次执行请求中,需要确保每条语句之间用分号分隔,避免前一条语句未结束就拼接当前语句的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:24:00