← 中文资源

简体中文版本

MySQL 错误 1064: SQL 语法错误

修复 MySQL 错误 1064:阅读 near 片段、检查保留字与引号,以及导致生成查询失败的方言差异。

阅读英文原文

症状

出现 ERROR 1064 (42000): You have an error in your SQL syntax ... near '...'。near 片段标出解析停止的位置,这正是修复的关键。

诊断

打印拼接后的确切 SQL 并直接测试:

mysql -e "SELECT 1 FROM users WHERE order = 1"   # 'order' is reserved

修复

为标识符加反引号并使用占位符:

SELECT id FROM users WHERE `order` = 1;
await pool.query('SELECT id FROM users WHERE status = ?', [status]);

避免把值直接拼进 SQL 文本。

验证

再次执行查询,不再报 1064;打印出的 SQL 中标识符带反引号、参数为占位符,且 mysql 客户端同样能接受。