《Mysql必讀用MySQL函數(shù)清除字符串首尾空白字符的方法》要點(diǎn):
本文介紹了Mysql必讀用MySQL函數(shù)清除字符串首尾空白字符的方法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
問題:短信息審核的時(shí)候,會(huì)根據(jù)內(nèi)容來進(jìn)行判斷,比如a內(nèi)容可以通過,b內(nèi)容不能通過,則MySQL中表現(xiàn)為 msg = a,msg = b,可是如果msg字段的內(nèi)容中包含回車換行等空白字符(最常見的是內(nèi)容開頭和末尾出現(xiàn)換行),則比對(duì)就不成功,造成短信息審核不成功.
由于內(nèi)容插入的時(shí)候沒方法進(jìn)行完全的過濾,所以審核這里就經(jīng)常出問題,搞的頭大,而MySQL的trim函數(shù)沒方法去掉回車和換行,只能去掉多余的空格,今天研究了一下MySQL的函數(shù),replace函數(shù),終于解決掉了這個(gè)問題,具體解決方法如下:
假設(shè)想要審核數(shù)據(jù)庫(kù)中內(nèi)容為“我愛你
”的短信息(注意內(nèi)容后有換行)通過(status改變成1)
之前的SQL語句是不起作用的
代碼如下:
UPDATE `tran`
SET `status` = '1'
WHERE `msg` = '我愛你';
修改之后的語句
代碼如下:
UPDATE `tran`
SET `status` = '1'
WHERE trim( replace( `msg`, '\r\n', ' ' ) ) = '我愛你';
把數(shù)據(jù)中的回車換行等替換成空格之后再trim掉,就達(dá)到目的了,雖然不是特別完美,但是由于沒方法在用戶錄入的時(shí)候控制,所以只能出此下策,好在MySQL內(nèi)置函數(shù)的效率還是很有保證的.
更新(15:50):
代碼如下:
UPDATE `tran`
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我愛你'
用了兩個(gè)trim,這樣的好處是不會(huì)替換內(nèi)容中間的換行和回車,只會(huì)處理頭尾的空格換行回車,相當(dāng)于php中trim函數(shù)的作用了.
附:replace 用法
1.replace into
代碼如下:
replace into table (id,name) values('1','a'),('2','b');
此語句的作用是向表table中插入兩條記錄.
2.replace(object, search,replace)
把object中出現(xiàn)search的全部替換為replace
select replace('www.qq.com', 'q', 'Y');
上例輸出成果 www.YY.com
注:trim和replace函數(shù)詳細(xì)的用法請(qǐng)查看MySQL手冊(cè).
作者:躍龍雜記
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql必讀用MySQL函數(shù)清除字符串首尾空白字符的方法》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12889.html