From d15bb5e10f93bafe560ddb1b7748e770e423b949 Mon Sep 17 00:00:00 2001 From: oyo Date: Wed, 29 Oct 2025 16:14:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20knowledge.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knowledge.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/knowledge.md b/knowledge.md index 76946a2..6f494cb 100644 --- a/knowledge.md +++ b/knowledge.md @@ -797,9 +797,26 @@ meeting_with_room_and_agenda_wo示例: } @detectDelim +- **关键概念:变量(Variable)与字段(Field)的本质区别** +【变量(#param)】: +- 来源:API 调用方传入的请求参数 +- 性质:运行时的**入参值**,在查询执行前已经确定 +- 在SQL中的角色:参数值,通过 PreparedStatement 绑定到 ? 占位符 +- 能做什么:只能作为 WHERE 条件的**右侧值**,参与比较运算 +- 能否判空:❌ 在 SQL 中不能判空,因为参数的有无应由调用层控制 +【字段(field name)】: +- 来源:数据库表中的实际列 +- 性质:存储在数据库中的**数据值** +- 在SQL中的角色:被查询和过滤的目标 +- 能做什么:可以进行各种操作,包括判空检查 +- 能否判空:✅ 可以,因为我们需要查询字段是否为 NULL +【类比】: +变量就像"函数的参数",字段就像"函数体内的变量" +你不会在函数签名处检查参数是否为空(那是调用者的职责) +但你会在函数体内检查本地变量是否为空(那是函数的职责) - **操作符使用的核心规范,必须遵循** 读方案查询条件遵循严格的操作符规范。以下是完整的操作符使用白名单: - - **一元操作符(仅作用于字段):** + - **一元操作符(仅作用于字段,绝对禁止作用于变量):** - isNull:判断字段值是否为null 用法:field isNull 示例:meeting_title isNull