22 查詢字段中帶空格的值


在數據庫中查詢的時候,有的字段名是帶有空格的,此時我們用普通的查詢語句是無法查找的,可以考慮用replace函數或者trim函數

1. replace函數

語法:replace(string,from_str,to_str)

解釋:即將string中出現的from_str替換為to_str,replace的作用是去掉字符串內部的空格

舉例如下,

update news
set content=replace(content,' ','');

 

2. trim函數

語法:trim([restr from] str)

解釋:去除前后指定的字符,默認是去除空格

舉例如下,

--語句,去除前后空格
SELECT TRIM(' phpernote  ');
--結果
‘phpernote’

--語句,去除左邊指定字符
SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx');
--結果
'phpernotexxx'

--語句,去除左右指定字符
SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx');
--結果
‘phpernote’

--語句,去除右邊指定字符
SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz');
--結果
'phpernotex'

具體相關函數的解釋,可以參考以下鏈接:

https://www.cnblogs.com/yongzhao/p/14635462.html

 

3. 我們可以模擬以下,若有以下一張表

id url title content
1 www.123.net 張三 技術博客 PHP博客
2 www.abc.net 我的 論壇 個人論壇
3 www.baidu 百度 百度一下
4 www.google google 谷歌一下

在這張表里面,第一條記錄和第二條記錄的title部分是有空格的,但是如果我們並不知道,或者不確定,用以下查詢語句:

SELECT * FROM TABLE WHERE title='張三技術博客';
SELECT * FROM TABLE WHERE title LIKE '%張三技術博客%';

上面的兩條查詢語句無法查詢出正確的結果,我們可以這樣寫:

SELECT * FROM TABLE WHERE TRIM(REPLACE(title,' ',''))=TRIM(REPLACE('張三 技術博客',' ',''));

SELECT * FROM TABLE WHERE TRIM(REPLACE(title,' ','')) LIKE TRIM(REPLACE('%張三 技術博客%',' ',''));

TRIM的作用是去掉字符串首尾的空格,REPLACE的作用是去掉字符串內部的空格。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM