mysql - 使用数组更新列(Mysql 过程)

标签 mysql arrays sql-update procedure where-in

我有这样的数组

text_id_array=["1011", "1012", "1013"]

我想将它传递给 mysql 过程以更新与数组成员匹配的列,所以我尝试了

BEGIN
UPDATE chat_texts a SET a.read_by=a.read_by+1 WHERE a.text_id IN (text_id_array); 
END

但它只适用于数组 1011 的第一个成员。我知道有很多这样的问题,但我找不到解决方案。感谢您的帮助!

最佳答案

如果您对非数组方法感兴趣,FIND_IN_SET可能有帮助。

这可能会帮助您入门:

SET @strIDs ="1011,1012,1013"
UPDATE chat_texts a SET a.read_by=a.read_by+1 WHERE FIND_IN_SET(a.text_id, @strIDs);

关于mysql - 使用数组更新列(Mysql 过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378002/

相关文章:

带列表的 MySQL 存储过程调用

c# - MySql.数据.MySqlClient.MySqlException : Timeout expired

python - 使用 boolean 掩码 : how to? 为 numpy 数组赋值

sql - 是否可以在更新语句中使用同一个表两次?

mysql - 不能在选择中使用用户变量

php - 如何选择上一条记录不依赖于 MySQL 中的 AutoIncrements ID?

php - 两个数组对一个分块

php - 回显没有和有循环的数组的键和值

sqlite CTE 与更新

sql - UPDATE 和 SELECT 到/从同一个表