我想找到那个样子SQLite的查询剥离一些文字
Transfer to CHK 9071 Confirmation# 1904952784
(不管多少)的所有记录,并去掉了“确认#”的一部分;所以上面将成为
Transfer to CHK 9071
我试过,但有语法错误:
update ZUSERPAYEE set ZNAME = left (ZNAME,length(ZNAME) - 24) where ZNAME like "%Confirmation# __________";
我想找到那个样子SQLite的查询剥离一些文字
Transfer to CHK 9071 Confirmation# 1904952784
(不管多少)的所有记录,并去掉了“确认#”的一部分;所以上面将成为
Transfer to CHK 9071
我试过,但有语法错误:
update ZUSERPAYEE set ZNAME = left (ZNAME,length(ZNAME) - 24) where ZNAME like "%Confirmation# __________";
尝试使用,而不是双
单引号这应该是因为这一点更可靠不要求确认号码是固定长度。还有LIKE的单引号。
update ZUSERPAYEE
set ZNAME = INSTR(ZNAME, 'Confirmation#') - 1)
where ZNAME like '%Confirmation# %'
我试过了,但得到了'错误:近“(”:语法error' ......也许是因为我使用'sqlite3'从OSX命令行...也许它不支持完整的功能集MySQL的 – 2014-10-08 01:32:51
的我更新了声明。我离开的第二个参数CHARINDEX。 – 2014-10-08 01:36:20
更改CHARINDEX来定位。格式相同,只是CHARINDEX是SQL Server。 – 2014-10-08 01:50:51
我建议您检出SUBSTRING_INDEX
函数。 (我知道,在MySQL的使用,约SqlLite3不知道)
例如
SUBSTRING_INDEX('Transfer to CHK 9071 Confirmation# 1904952784',' Confirmation#',1)
(这个例子假设总有前确认#空间,你想要的空间移除。)
如果你只是想剪掉开始在“确认#”,省略了空间字符:
SUBSTRING_INDEX('Transfer to CHK 9071 Confirmation# 1904952784','Confirmation#',1)
对于给出的例子,这将留下尾随空格。尾部空格可以通过将该表达式包装在一个
TRIM(TRAILING ' ' FROM expr)
不错,但'错误:没有这样的函数:SUBSTRING_INDEX' :-( – 2014-10-08 02:31:03
它适用于我。 (MySQL的5.6.16)结果:“转移至CHK 9071”空白结尾。 – David 2014-10-08 01:18:31