替换所有表中的特殊字符

时间:2017-09-15 22:14:16

标签: sql sqlite

我在文本列中有一些文字值,我想快速更改。

相关文字值为%S

文本列中此类文本的示例是

You're just downloading %S.

%S has successfully been updated.

我想更改%S,以便2个字段可以读取

You're just downloading MySuperApp.

MySuperApp has successfully been updated.

字符%本身是SQLite搜索中的运算符,我不知道如何将其包装为某个文本值。

另外,我不知道在单个SQLite语句中只更改文本的一部分所需的SQL命令。 到目前为止,我只更改了整个字段文本,而不是它的某些部分。

1 个答案:

答案 0 :(得分:1)

  

字符%本身是SQLite搜索中的运算符,我不知道如何将其包装为某些文本值。

您可以使用REPLACE功能(不需要包装它):

WITH cte(t) AS (
   VALUES ('You''re just downloading %S.'),
   ('%S has successfully been updated.')
)
SELECT t, REPLACE(t, '%S', 'MyUserApp') AS replaced
FROM cte;

<强> DBFiddle Demo

或者如果您需要UPDATE表:

UPDATE tab_name
SET col_name = REPLACE(col_name, '%S', 'specific value')
WHERE col_name LIKE '%^%S%' ESCAPE '^';  -- here you have to escape it

<强> DBFiddle Demo2