【问题标题】:Delete a specific value from a string (string contains comma separated values)从字符串中删除特定值(字符串包含逗号分隔值)
【发布时间】:2015-07-13 16:27:46
【问题描述】:

例如,如果我有这样的表结构:

Table 1
    ID Name Value

    001 Rajesh 90,100,210,400
    002 Suresh 100,400,300,66
    003 Mahesh 200,500
    004 Virat 400,578,57

如何从 Suresh 中删除 400?

DELETE Value ="400" FROM table1
WHERE Name = 'Suresh'

这不起作用。

【问题讨论】:

  • 可能重复:stackoverflow.com/questions/14642658/… 另请参阅文档:ftp.nchu.edu.tw/MySQL/tech-resources/articles/… 要从现有集合中删除集合元素,我们使用 REPLACE 函数来删除元素。如果使用十进制值,我们使用按位 AND 运算符 & 与按位 NOT 运算符 ~ 的组合。 UPDATE set_test SET myset = REPLACE(myset,'Dancing','') WHERE rowid = 6; UPDATE set_test SET myset = myset & ~2 WHERE rowid = 6;

标签: mysql


【解决方案1】:

我建议将这些值拆分到通过个人 ID 关联的第二个表中。但是,您可以针对当前情况使用以下查询:

UPDATE table1
SET Value = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', Value, ','), ',400,', ','))
WHERE Name = 'Suresh'

这是SQL Fiddle。参考见MySQL's string functions

【讨论】:

  • 有什么办法可以在 hql 中改变它吗?
猜你喜欢
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2013-05-31
  • 2016-05-21
相关资源
最近更新 更多