2017-09-15 51 views
0

我在文本列中有一些文本值,我想快速更改。替換所有表中的特殊字符

有問題的文本值是%S

在文本列這樣的文字的一個例子是

You're just downloading %S. 

%S has successfully been updated. 

我想改變%S使得2個字段將例如讀

You're just downloading MySuperApp. 

MySuperApp has successfully been updated. 

字符%本身是SQLite搜索中的一個運算符,我不知道如何將它包裝爲文本值。

此外,我不知道所需的SQL命令只更改一個SQLite語句中的文本的一部分。 到目前爲止,我只改變了整個字段文本,而不是它的某些部分。

回答

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