了解如何更新字符串的一部分。
字符串如下所示:'0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4'
我想要的是将第一个9
字符串数量更改为0
。
关于如何仅使用MySQL的任何建议?
答案 0 :(得分:0)
如果你的字符串格式/长度是固定的那么快又脏:
-- Concat with hardcode prefix with tail of the string:
SELECT CONCAT("0 0 0 0 0 0 0 0 0 ", SUBSTRING("0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4", 19))
-- Update
UPDATE {TABLE}
SET {COLUMN} = CONCAT("0 0 0 0 0 0 0 0 0 ", SUBSTRING({COLUMN}, 19))
答案 1 :(得分:0)
试试这个(经过测试):
select
CONCAT(
LEFT('0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4', INSTR('0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4','9')-1)
,'0',
RIGHT( '0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4',CHAR_LENGTH('0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4')-1- CHAR_LENGTH(LEFT('0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4', INSTR('0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4','9')-1)))
)
假设s='0 0 0 6 7 2 6 8 6 1 7 5 3 2 4 9 9 4'
(并且可以是每个字符串)
select
CONCAT(
LEFT(s, INSTR(s,'9')-1)
,'0',
RIGHT(s,CHAR_LENGTH(s)-1- CHAR_LENGTH(LEFT(s, INSTR(s,'9')-1)))
)