比如有一个多查询页面:有姓名,有学历,有年龄.如果什么也不输,则表示查询所有.
以前我一直用拼sql的方式来进行查询,但这很容易被Sql注入,最近查到一个好方法.
比如原来:
if @name != ''
set @sql = @sql + 'name = ''' + @name + ''' '
set @sql = @sql + 'name = ''' + @name + ''' '
现在则写成
and (@name = '' or name = @name)
既防止了sql注入,也让语句写的更优雅.在效率上并不比拼的方式差多少,有研究为证:
http://www.dotblogs.com.tw/dotjum/archive/2008/03/11/1320.aspx