用MySQL函式清除字串首尾空白字元的方法

2022-10-03 12:39:12 字數 1375 閱讀 7769

問題:簡訊息審核的時候,會根據內容來進行判斷,比如a內容可以通過,b內容不能通過,則mysql中表現為 msg = a,msg = b,可是如果msg欄位的內容中包含回車換行等空白字元(最常見的是內容開頭和末尾出現換行),則比對就不成功,造成簡訊息審核不成功。

由於內容插入的時候沒辦法進行完全的過濾,所以審核這裡就經常出問題,搞的頭大,而mysql的trim函式沒辦法去掉回車和換行,只能去掉多餘的空格,今天研究了一下mysql的函式,replace函式,終於解決掉了這個問題,具體解決辦法如下:

假設想要審核資料庫中內容為「我愛你

」的簡訊息(注意內容後有換行)通過(status改變成1)

之前的sql語句是不起作用的

複製** **如下:

update `tran`

set `status` = '1'

where www.cppcns.com`msg` = '我愛你';

修改之後的語句

複製** **如下:

update `tran`

set `status` = '1'

where trim( replace( `msg`, '\r\n', ' ' ) ) = '我愛你';

把資料中的回車換行等替換成空格之後再tri程式設計客棧m掉,就達到目的了,雖然不是特別完美,但是由於沒辦法在使用者錄入的時候控制,所以只能出此下策,好在mysql內建函式的效率還是很***的。

更新(15:50):

複製** **如下:

update `tran`

set `status` = '1'

where trim( trim(

both '\r\n' 程式設計客棧

from content ) ) = '我愛你myhiw'

用了兩個trim,這樣的好處是不會替換內容中間的換行和回車,只會處理頭尾的空格換行回車,相當於php中trim函式的作用了。

附:replace 用法

1.replace into

複製** **如下:

replace into table (id,name) values('1','a'),('2','b');

此語句的作用是向表table中插入兩條記錄。

2.replace(object, search,replace)

把object**現search的全部替換為replace

select replace('www.qq.com', 'q', 'y');

上例輸出結果 www.yy.com

注:trim和replace函式詳細的用法請檢視mysqlmyhiw手冊。

作者:躍龍雜記

本文標題: 用mysql函式清除字串首尾空白字元的方法

本文位址:

首尾字串 翻轉字串 5

編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一 問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。思路 中間變數首尾替換法,逐位遍歷,進行交換 詳解1....

C 去除字串首尾字元或字串

在做乙個屬性入庫的功能,將excel屬性資料匯入到圖層要素當中,這裡excel和sde資料庫資料存在乙個關聯字段,通過關聯字段值進行匹配屬性入庫。在實際業務中,由於普查資料往往某些字段值比較複雜,在寫入到圖層中時使用者可能做一些簡化,例如乙個要素編號為0532bh001,可能錄入到圖層中只錄入bh0...

C 去除字串首尾字元或字串

在做乙個屬性入庫的功能,將excel屬性資料匯入到圖層要素當中,這裡excel和sde資料庫資料存在乙個關聯字段,通過關聯字段值進行匹配屬性入庫。在實際業務中,由於普查資料往往某些字段值比較複雜,在寫入到圖層中時使用者可能做一些簡化,例如乙個要素編號為0532bh001,可能錄入到圖層中只錄入bh0...