String SQLite查询以删除一些文本

String SQLite查询以删除一些文本,string,sqlite,String,Sqlite,我想找到所有看起来像 转到CHK 9071确认#1904952784 (不考虑编号)并剥去“确认”部分;因此,上述情况将变得更加严重 转到CHK 9071 我尝试了此操作,但出现语法错误: update zuserpaye set ZNAME=left(ZNAME,length(ZNAME)-24),其中ZNAME类似于“%Confirmation”\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu尝试使用

我想找到所有看起来像

转到CHK 9071确认#1904952784

(不考虑编号)并剥去“确认”部分;因此,上述情况将变得更加严重

转到CHK 9071

我尝试了此操作,但出现语法错误:


update zuserpaye set ZNAME=left(ZNAME,length(ZNAME)-24),其中ZNAME类似于“%Confirmation”\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

尝试使用单引号而不是双引号,这应该更可靠一些,因为它不要求确认号为固定长度。还有类似的单引号

update ZUSERPAYEE 
set ZNAME = INSTR(ZNAME, 'Confirmation#') - 1) 
where ZNAME like '%Confirmation# %'

我建议您签出
SUBSTRING\u INDEX
函数。(我知道这在MySQL中可用,但不确定SqlLite3是否可用)

e、 g

(本例假设在确认之前始终存在空格,您也希望删除该空格。)

如果只想从“确认”开始修剪,请忽略空格字符:

 SUBSTRING_INDEX('Transfer to CHK 9071 Confirmation# 1904952784','Confirmation#',1)
对于给定的示例,这将留下一个尾随空格。可以通过将该表达式包装到

TRIM(TRAILING ' ' FROM expr)

它对我有用。(MySQL 5.6.16)结果:“转移到CHK 9071”,最后为空。我尝试了,但得到
Error:near”():语法错误
…可能是因为我在OSX上的命令行中使用了
sqlite3
…可能它不支持MySQL的完整功能集…我更新了语句。我将第二个参数保留为charindex。将charindex更改为LOCATE。相同的格式,但charindex是用于SQL Server的。您的数据库标记不是说MySQL earlier?我将为SQLlite从一个位置到另一个位置再更新一次。我不是一个大的SQLlite人。是的,我的错!我应该使用SQLite,抱歉。很好,但是
错误:没有这样的函数:SUBSTRING\u INDEX
:-(
TRIM(TRAILING ' ' FROM expr)