首页 > 解决方案 > 用另一个包含换行符的字符串替换一个字符串的 SQLite 查询是什么?

问题描述

我想替换); "在 "Note" 列中使用)Carriage Return",但条件是 "Phrase" 列 (BOOL) 设置为 TRUE。我尝试使用以下查询,但没有奏效:

SELECT 
  * 
FROM "Slovník";
UPDATE Slovník
WHERE   Phrase = 1
SET Note = replace(Note, '); "', ')CHAR(13)"');

换句话说,在上述条件下,我想在我的数据库中的 Note 列中用换行符替换分号:[screenshot][1]

为了避免分号在其他地方被替换(在句子示例之间之外的地方),我必须包含额外的字符,例如); "

(如果我的问题不够清楚,请告诉我,我会尽力澄清。)

标签: sqlite

解决方案


将连接运算符||与函数一起使用,CHAR()并且不要将函数包含在单引号内:

UPDATE [Slovník]
SET Note = replace(Note, '); "', ')' || CHAR(13) || '"')
WHERE   Phrase = 1

最好使用这个WHERE子句:

WHERE   Phrase = 1 AND Note LIKE '%); "%'

以避免对不包含'); "'.


推荐阅读