mysql - 在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 ;
解决方案
您最好创建一个动态查询然后执行它。
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;
推荐阅读
- python - 从 Django 中的 for 循环创建新的 for 循环
- windows - REG_BINARY 在 Windows 注册表中可以有多大?
- node.js - 从 mongoose 的数组中按 id 删除对象
- javascript - 在 React 中并排放置每个 div 的 2 个元素
- javascript - 触发后如何取消 setTimeout 操作?
- excel - 有关加快此代码的任何建议?
- vue.js - vue数据中声明的数字不能小于0
- reactjs - 如何创建 redux 操作成功和错误回调以触发反应组件处理程序?
- sql - 使用 SQL 从 1 次通过的表中选择两个计数?
- python - 将数据保存到 3D numpy 数组