mysql中的去除空格函數


 

(1)mysql replace 函數

語法:replace(object,search,replace)

意思:把object中出現search的全部替換為replace

案例:update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格

 

(2)mysql trim 函數

完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
簡化格式:TRIM([remstr FROM] str)

以下舉例說明:

1 mysql> SELECT TRIM(' phpernote  '); 
2 -> 'phpernote'
1 mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx'); 
2 -> 'phpernotexxx'
1 mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx'); 
2 -> 'phpernote'
1 mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz'); 

 

mysql中的去除左空格函數:

LTRIM(str) 
Returns the string str with leading space characters removed.
mysql> SELECT LTRIM(' barbar');
-> 'barbar' This function is multi-byte safe.

 

mysql中的去除右空格函數:

RTRIM(str)
Returns the string str with trailing space characters removed.
以下是代碼片段:
mysql> SELECT RTRIM('barbar   ');
-> 'barbar' 
This function is multi-byte safe.

 

 

當我們在使用sql查詢的時候,如果數據庫中的這個字段的值含有空格(字符串內部,非首尾),或者我們查詢的字符串中間有空格,而字段中沒有空格。那么我們很有可能就什么都查不到。假如有下面的一張表:

  表名

  id url title content

  這張表里面,第一和第二條記錄的title部分是有空格的,如果我們並不知道,或者由於內容的不能,有無空格有很大的不確定性:

 代碼如下  

select * from table where title = '李楊技術博客';
select * from table where title like '%李楊技術博客%';

  以上兩句sql均無法查詢出正確的結果,那么我們應該怎么寫呢?

  請看下面:

 代碼如下  

select * from table where trim(replace(title,' ','')) = trim(replace('李楊技術博客',' ',''));
select * from table where trim(replace(title,' ','')) like trim(replace('%李楊 技術博客%',' ',''));

  trim的作用是去掉字符串收尾的空格,replace的作用是去掉字符串內部的空格。

  這樣就可以正確的進行匹配了,如果不希望給mysql太多壓力,條件部分的對空格的處理我們可以在程序中實現。

 

 

MySQL清除字符串首尾空格函數是經常會用到的函數,MySQL 清除字符串首尾空格函數有三個: ltrim(), rtrim(), trim(),下面就為您分別介紹。

  1. mysql> select concat('.', ltrim(' ddd '), '.');  
  2. +----------------------------------+  
  3. | concat('.', ltrim(' ddd '), '.') |  
  4. +----------------------------------+  
  5. | .ddd .                           |  
  6. +----------------------------------+  
  7. mysql> select concat('.', rtrim(' ddd '), '.');  
  8. +----------------------------------+  
  9. | concat('.', rtrim(' ddd '), '.') |  
  10. +----------------------------------+  
  11. | . ddd.                           |  
  12. +----------------------------------+  
  13. mysql> select concat('.', trim(' ddd '), '.');  
  14. +---------------------------------+  
  15. | concat('.', trim(' ddd '), '.') |  
  16. +---------------------------------+  
  17. | .ddd.                           |  
  18. +---------------------------------+ 

MySQL 中的 trim 字符串函數,實在是強大。它不僅能消除字符串首尾部的空格,還可以消除我們指定的任意字符。ltrim(), rtrim() 只是它的一個功能子集。來看下 trim 函數的完整語法:

1. trim([{both | leading | trailing} [remstr] from] str)
2. trim([remstr from] str)

1. 清除字符串首部字符。

  1. ysql> select trim(leading '.' from '..ddd..');  
  2. +----------------------------------+  
  3. | trim(leading '.' from '..ddd..') |  
  4. +----------------------------------+  
  5. | ddd..                            |  
  6. +----------------------------------+ 

2. 清除字符串尾部字符。

  1. mysql> select trim(trailing '.' from '..ddd..');  
  2. +-----------------------------------+  
  3. | trim(trailing '.' from '..ddd..') |  
  4. +-----------------------------------+  
  5. | ..ddd                             |  
  6. +-----------------------------------+ 

3. 清除字符串首尾部字符。

  1. mysql> select trim(both '.' from '..ddd..');  
  2. +-------------------------------+  
  3. | trim(both '.' from '..ddd..') |  
  4. +-------------------------------+  
  5. | ddd                           |  
  6. +-------------------------------+  
  7. mysql> select trim('.' from '..ddd..');  
  8. +--------------------------+  
  9. | trim('.' from '..ddd..') |  
  10. +--------------------------+  
  11. | ddd                      |  
  12. +--------------------------+ 

trim() 默認清除字符串首尾部的空格。

 

 

在錄數據時發現有些字典表中值后面有多余的空格,一下sql語句可以批量去掉 

update location set LOCATION_CODE = trim(LOCATION_CODE)   
 
同理也可以使用REPLACE函數批量替換,下例為批量替換換行為空格 
update location set LOCATION_CODE  = replace(LOCATION_NAME, '\r\n', ' ');  


免責聲明!

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



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