我想找到那個樣子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