Mysql 字符解析
call SelectScore('430000,110000,120000')
数据是这样的
id name value
430000 1 1
110000 2 2
120000 3 3
230000 4 4
CREATE PROCEDURE SelectScore(
s_SchoolProvinceID varchar(200)
)
begin
select
*
from t_tdscore where s_StudentProvinceID in(s_SchoolProvinceID );
end;
s_SchoolProvinceID 它要传入的参数in( '430000','110000','12000')格式
查询结果为
id name value
430000 1 1
110000 2 2
120000 3 3
求解析
s_SchoolProvinceID 请问这个格式怎么拼接
[解决办法]
- SQL code
declare @T table(c1 varchar(1),c2 int)insert @Tselect 'a',10 union allselect 'b',90 union allselect 'c',102 union allselect 'd',121 union allselect 'e',111declare @s_SchoolProvinceID varchar(10)set @s_SchoolProvinceID='b,c,e'select * from @T where charindex(','+c1+',',','+@s_SchoolProvinceID+',')>0/*---- -----------b 90c 102e 111*/--mysql 中貌似有个函数INSTR 可以代替sql server 中的charindex
[解决办法]
- SQL code
drop table if exists t_tdscore;drop PROCEDURE if exists SelectScore;create table t_tdscore (id varchar(10),name varchar(10),value INT);insert into t_tdscore values('430000','1',1);insert into t_tdscore values('110000','2',2);insert into t_tdscore values('120000','3',3);insert into t_tdscore values('230000','4',4);DELIMITER $$CREATE PROCEDURE SelectScore( s_SchoolProvinceID varchar(200))beginselect * from t_tdscore where FIND_IN_SET(id,s_SchoolProvinceID);END$$ DELIMITER ;call SelectScore('430000,110000,120000');/*430000 1 1110000 2 2120000 3 3*/