我的同事写了这个SQL语句,我很难理解它。在where子句中使用冒号的目的究竟是什么?
WHERE MGM_YYMM like :AS_YYMM
完整查询:
SELECT A.MGM_YYMM,
A.MGM_DATE,
A.MGM_GB,
A.INDATE,
A.SUDATE,
A.EMPNUM,
FROM SE_MAGAM A(NOLOCK)
WHERE MGM_YYMM like :AS_YYMM
ORDER BY MGM_YYMM DESC
答案 0 :(得分:3)
这是一个绑定变量。
程序(或发出查询的其他任何内容)将为以下内容分配一个值:AS_YYMM,在这种情况下是与MGM_YYMM列匹配的模式。
这些参数化查询很有用,因为它们可以准备/解析/编译/分析一次,然后多次运行以获得不同的输入,同时减少开销(与每次新查询相比)。还有助于防止SQL注入(与从用户输入构建动态SQL语句相比)。