根据单列中的数字文本更新字符串

时间:2018-06-29 02:05:31

标签: sql

示例我有这个varchar'XXXOXOXXOX'和'XOXOXOXXXX'。我需要将第5个“ X”文本从单个字符串列中的总共10个文本更新为“ O”。因此,更新后的结果将是“ XXXOOOXXOX”和“ XOXOOOXXXX”。请帮忙。

2 个答案:

答案 0 :(得分:0)

这是我在MySQL中要做的事情:

UPDATE yourTable
SET col = CONCAT(LEFT(col, 4), 'O', SUBSTR(col, 6))
WHERE SUBSTR(col, 5, 1) = 'X';

更通用的ANSI SQL答案是:

UPDATE yourTable
SET col = LEFT(col, 4) || 'O' || SUBSTR(col, 6))
WHERE col LIKE '____X%';

答案 1 :(得分:0)

在SQL Server中,您可以执行以下操作:

UPDATE yourTable
    SET col = STUFF(col, 5, 1, '0')
    WHERE col = '____X%';

在MySQL中,

UPDATE yourTable
    SET col = INSERT(col, 5, 1, '0')
    WHERE col = '____X%';