SQL参数化查询的问题
最近碰到个问题, SQL语句中的 "... like '%@strKeyword%'"这样写查不出结果, 非的写成 "... like '%" + strKeyword + "%'"才能查出正确结果, 难道like子句不能用参数查询吗? 之前也碰到好多次, 当时都没在意, 这次刚好有空, 就研究了下, 发现并非like不能使用参数化查询, 而是之前的逻辑不对.
like '%'+@parm+'%' --- 用+号表示字符串连接
like '%@strKeyword%' --- 是查询某个字段 包含@strKeyword这个字符串
所以正确的写法应该是第一种, 即:
SELECT * FROM tab1 WHERE colm1 like '%'+@strKeyword+'%'