首页 > 解决方案 > 在mysql中将逗号分隔的字符串值转换为整数值

问题描述

我有一个逗号分隔的字符串变量 v_combined_prodid 。但是我想将逗号分隔的字符串变量转换为逗号分隔的 int 值或在循环中我们可以使用 where 子句 prodid 作为 int 更新一个表。我们不能使用 FIND_IN_SET(prodid, v_combined_prodid )

我们可以使用存储过程。

DECLARE v_combined_prodid varchar(800);

set v_combined_prodid ='1,2,3,4,5';

below statement exactly requirement.

update mytable t set t.status=2
 WHERE prodid in (1,2,3,4,5)
 and t.status=0 ;

标签: mysql

解决方案


您最好创建一个动态查询然后执行它。

示例见Mysql 基于逻辑在存储过程中动态构建查询字符串。

DECLARE v_combined_prodid varchar(800);

set v_combined_prodid ='1,2,3,4,5';

set @query = CONCAT(' update mytable t set t.status = 2 where prodid in ('
                    , v_combined_prodid
                    , ') and t.status = 0');

PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

推荐阅读