JSON.CN让代码更轻

SQL 问号参数怎么还原:从日志到可阅读 SQL

将日志里的 MySQL 风格问号 SQL 与参数按顺序整理,区分字符串、数字、布尔与 NULL,用本地工具生成可阅读草稿。

打开工具,按步骤操作 →

准备 SQL 与参数

从同一次请求中复制 SQL 和有序参数,先确认两者属于同一次执行。以下为合成示例,不包含真实业务数据。

SELECT * FROM orders WHERE user_id = ? AND status = ?
参数 1:数字 42
参数 2:字符串 paid

在工具里按类型逐项填写

打开 SQL 参数还原工具,将 SQL 放入输入区,删除示例参数,添加数字 42 和字符串 paid,然后运行。字符串可能输出为 UTF-8 十六进制表达式,这是为了避免引号及反斜杠受 SQL 模式影响,不代表内容丢失。

为什么不能直接全局替换问号

SQL 字符串和注释中也可能出现问号,它们不是参数。参数的数量、顺序和类型都需要核对;NULL 与字符串 null 不同,字符串 00123 也不能随意变成数字。

SELECT '?' AS marker, id FROM orders WHERE id = ?

支持范围与结果检查

当前工具仅处理 MySQL 风格 ? 占位符,不处理 PostgreSQL $1 或命名参数。不自动解析整段 MyBatis 日志,请自行分离 SQL 与参数。结果供阅读和核查,不连接数据库;应用代码仍应使用驱动参数绑定。

开始处理 → · 更多使用指南