簡體   English   中英

在MySQL中刪除尾隨空格

[英]remove trailing whitespace in MySQL

為什么我的SELECT不能忽略空格,為什么TRIM似乎沒有作用?

這是SELECT DISTINCT crop_year from raw_data類的部分結果:

Rows    crop_year
105755  '2010'
12326   '2010 '
256363  '2011'
319321  '2011 '
...

我輸入單引號來說明存在尾隨空格的事實。

我的生產服務器上有2個問題...我無法在本地復制:

答:我希望SELECT能夠忽略空格,這在許多其他問題以及MySQL Docs中都有說明 ,但是顯然它不能在我的產品服務器上以這種方式工作。

B.我希望UPDATE raw_data SET crop_year = TRIM(crop_year)可以解決此問題,但是運行此查詢會導致0個受影響的行。

其他背景:此列類型為VARCHAR(11)。 如果相關,此表包含混合存儲引擎和排序規則:該表是MyISAM,當前此列是latin1_swedish_ci。

PS:在這種特定情況下,year始終是4位數的值,因此我最終將列從VARCHAR(11)更改為CHAR(4)...這有效地修剪了空白,但是我仍在發布問題,因為我發現很可能在長度不固定的其他列上遇到類似的問題。

這個問題的幫助下,找到了答案。 TRIM不尊重所有空格...僅尊重空格。 就我而言,我需要:

select distinct trim(BOTH '\\r' from crop_year) as crop_year FROM raw_field_data

其他變化可能包括

select distinct trim(BOTH '\\n' from crop_year) as crop_year FROM raw_field_dataselect distinct trim(BOTH '\\n' from crop_year) as crop_year FROM raw_field_data select distinct trim(BOTH '\\n\\r' from crop_year) as crop_year FROM raw_field_data select distinct trim(BOTH '\\n' from crop_year) as crop_year FROM raw_field_data select distinct trim(BOTH '\\n\\r' from crop_year) as crop_year FROM raw_field_data

當您輸入作物年度的值時,也許在“表單”中放置了額外的空間。 檢查您的輸入表格,也許...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM