我现在在前台传入数据为
call  SelectScore('430000,110000,120000,23000')CREATE DEFINER = `root`@`%` PROCEDURE `SelectScore`(
  s_SchoolProvinceID varchar(200)
)
begin
select 
    *
from t_tdscore where s_StudentProvinceID in(s_SchoolProvinceID );
end;
s_SchoolProvinceID  这个串求解析

解决方案 »

  1.   

    select  
      *
    from t_tdscore where ','+cast(s_StudentProvinceID as varchar(100))+',' in(','+s_SchoolProvinceID+',' );
      

  2.   

    try
    select  
      *
    from t_tdscore where FIND_IN_SET(s_StudentProvinceID,s_SchoolProvinceID)>0;
      

  3.   

    哦 这里不能用IN了 需要用LIKEselect  
      *
    from t_tdscore where ','+cast(s_StudentProvinceID as varchar(100))+',' like','+s_SchoolProvinceID+',' ;
      

  4.   


    恩 谢谢树锅指点 忘记了。FIND_IN_SET其实更加好处理变量
      

  5.   

    CREATE TABLE IF NOT EXISTS `test` (  
     `id` int(8) NOT NULL auto_increment,  
      `name` varchar(255) NOT NULL,  
     `list` varchar(255) NOT NULL,  
      PRIMARY KEY  (`id`)  
    );  
      
    INSERT INTO `test` VALUES (1, 'name', 'daodao,xiaohu,xiaoqin');  
    INSERT INTO `test` VALUES (2, 'name2', 'xiaohu,daodao,xiaoqin');  
    INSERT INTO `test` VALUES (3, 'name3', 'xiaoqin,daodao,xiaohu');  
    select * from `test` where FIND_IN_SET('daodao',`list`);  /*1 name daodao,xiaohu,xiaoqin
    2 name2 xiaohu,daodao,xiaoqin
    3 name3 xiaoqin,daodao,xiaohu
    */
      

  6.   

    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 请问这个格式怎么拼接