mysql/sqlserver where in 传参数的问题
来源:互联网 发布:火警抢购软件 编辑:程序博客网 时间:2024/05/16 15:00
参数:@p0=1,2,3,4
1.我们普通的查询如下:
select
*
from
table_name t
where
t.field1
in
(1,2,3,4,...);
如果需要传参数的话
select
*
from
table_name t
where
t.field1
in
(@p0);
这样最终的sql是select
*
from
table_name t
where
t.field1
in
(‘1,2,3,4,...‘);
只能查出t.field1=1的结果(具体为什么能查出第一个记录待研究)
要想所有参数都能查出的话这样是不行的,这时候需要使用第二中解决方案
2.find_in_set 使用这个方法来搞定
select
*
from
table_name t
where
find_in_set(t.field1,
'1,2,3,4'
);
下面是相关排序和sqlserver的解决方案
MySQL/sqlserver查询in操作 查询结果按in集合顺序显示
select * from ibs6_terminal_adv_inf where id in (16,14,15) order by field(id,16,14,15)
select * from ibs6_terminal_adv_inf where id in (16,14,15) order by find_in_set(id,'16,14,15')
select * from ibs6_terminal_adv_inf where id in (16,14,15) order by substring_index('16,14,15',id,1)
结果就是按顺序显示了
sqlserver 用以下的语句
select * from ibs6_terminal_adv_inf where id in (16,14,15) order by CHARINDEX(','+ltrim(id)+',',',16,14,15,')"
这个方法没有测试过,有测试过的同学可以发一下结果
注意了,里面有很多逗号,一个都不能少哦~~~
- mysql/sqlserver where in 传参数的问题
- MySQL 存储过程传参数问题:实现 where id in(1,2,3,...)
- MySQL 存储过程传参数问题:实现 where id in(1,2,3,...)
- mysql+mybatis where in带多个参数
- Mybatis where in语句如何传参数
- MySQL 存储过程传参数实现where id in('40288c81494f088601494f92938d0002,40288c81494f088601494f92938d0012,')示例
- Mysql where in中的参数传入字符串(字符串拼接)
- mysql关于select where in的效率
- MySQL where in 排序
- 关于Select Where In 的排序问题
- 关于Select Where In的排序问题
- MySQL 存储过程或者函数中传参数实现where id in(1,2,3,...)IN条件拼接
- MySQL中select filed from table where field in (....)语句的排序问题
- SQLSERVER not in 的问题
- where in list问题
- mysql中where in用法
- mysql delete where not in
- mysql怎么使用 where in
- 堆、栈和堆栈
- 术语简写
- 添加鼠标移出区域消息
- 使用iText给Pdf加密(真正经过测试之后的程序...)
- WMI常见问题及解决
- mysql/sqlserver where in 传参数的问题
- JavaScript常用插件及网站
- MySQL如何避免使用swap(二)
- 等差数列判断算法
- j2objc
- redis在shell中的使用
- 搞大了,修改一个参数后重启数据库服务器出错CRS-0184
- Andriod的联通性---Wi-Fi Direct(二)
- 位运算实现四则运算