【发布时间】:2014-11-02 10:12:06
【问题描述】:
我有一个名为“tel”的列。此列有一些以(例如)“0511”开头的记录,我想将其更改为“0513”。什么是正确的查询?
【问题讨论】:
标签: sqlite
我有一个名为“tel”的列。此列有一些以(例如)“0511”开头的记录,我想将其更改为“0513”。什么是正确的查询?
【问题讨论】:
标签: sqlite
你可以使用替换功能
UPDATE table SET tel= replace( tel, '0511', '0513' ) WHERE tel LIKE '0511%';
查看SQLite核心函数here
编辑 如果您的电话号码的前 4 位数字后匹配。 例如 051121505113
UPDATE table SET tel= replace(substr(tel,1,5), '0511', '0513' )||substr(tel,5)
WHERE tel LIKE '0511%';
【讨论】:
UPDATE table
SET tel = REPLACE(tell, '0511', '0513')
WHERE tel like '%0511%'
【讨论】:
如果字符串中存在“0511”的风险,您可以确保仅在字符串开头替换 0511,如下所示:
UPDATE [table]
SET [tel] = CASE WHEN
instr([tel], '0511') = 1 THEN
'0513' || substr([tel], 4)
ELSE
[tel]
END
WHERE [tel] LIKE '0511%';
【讨论】: