[英]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_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
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.