首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Mysql 字符解析,该如何处理

2012-05-31 
Mysql 字符解析call SelectScore(430000,110000,120000)数据是这样的id name value430000 1 1110000 2 2

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*/ 

热点排行