Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询中的MySQL存储过程_Mysql_Sql_Stored Procedures - Fatal编程技术网

查询中的MySQL存储过程

查询中的MySQL存储过程,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我想制作一个MySQL存储过程 DELIMITER $$ DROP PROCEDURE IF EXISTS `SECTOR_INDUSTRY_SP` $$ CREATE PROCEDURE `SECTOR_INDUSTRY_SP`(IN RINSERIES TEXT, IN COMMUNITYIDS TEXT) READS SQL DATA BEGIN SELECT * from PROFESSIONAL_IDENTITY_MERGED p , std_company_detail s

我想制作一个MySQL存储过程

DELIMITER $$

DROP PROCEDURE IF EXISTS `SECTOR_INDUSTRY_SP` $$
CREATE PROCEDURE `SECTOR_INDUSTRY_SP`(IN RINSERIES TEXT, IN COMMUNITYIDS TEXT)
    READS SQL DATA
BEGIN
SELECT *
from PROFESSIONAL_IDENTITY_MERGED p , std_company_detail s
where (p.pim_company_id = s.cid) AND p.pim_community_id IN  ('+'+COMMUNITYIDS+'+')
AND p.pim_rin IN  ('+'+RINSERIES+'+');

END $$

DELIMITER ;
正如您所看到的,我有两个参数来调用这个过程,它是文本格式的,比如'1231212341239'。同样,COMMUNITYIDS类似于'2,5,8',但是当我通过时,它是这样解释的

SELECT *
    from PROFESSIONAL_IDENTITY_MERGED p , std_company_detail s
    where (p.pim_company_id = s.cid) AND p.pim_community_id IN  ('12312,1234,1239')
    AND p.pim_rin IN  ('2,5,8');
但我希望这个查询如下所示

SELECT *
        from PROFESSIONAL_IDENTITY_MERGED p , std_company_detail s
        where (p.pim_company_id = s.cid) AND p.pim_community_id IN  (12312,1234,1239)
        AND p.pim_rin IN  (2,5,8);
我该怎么做?谢谢

试试这个:

DELIMITER $$

DROP PROCEDURE IF EXISTS `SECTOR_INDUSTRY_SP` $$
CREATE PROCEDURE `SECTOR_INDUSTRY_SP`(IN RINSERIES TEXT, IN COMMUNITYIDS TEXT)
    READS SQL DATA
BEGIN

SET @s = CONCAT("SELECT *
from PROFESSIONAL_IDENTITY_MERGED p , std_company_detail s
where (p.pim_company_id = s.cid) AND p.pim_community_id IN  (", COMMUNITYIDS, ")
AND p.pim_rin IN  (",RINSERIES,")");

PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END $$

DELIMITER ;

它可以用于声明游标吗?