您的位置:首页 > 数据库

sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件...

2015-09-15 10:29 399 查看

sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件

select * from tablenmae where id in(1,2,3)

这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql语句

string aa=”1,2,3”;

string sqltxt=”select * from tablename where id in (“+aa+”)”;

然后执行 sqltxt

这样的风险是存在sql注入漏洞。那么如何在 in 的条件中使用变量呢?可以把形如“1,2,3”这样的字符串转换为一个临时表,这个表有一列,3行,每一行存一个项目(用逗号分隔开的一部分)

该函数可以这样写:
然后sql语句就可以这样了

declare str vchar(100)

set str=’1,2,3’

select * from tablename where id in (select str2table from StrToTable(@str) )

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script> 阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐