我用我的MySQL數據庫這個查詢找到所有行my_column
不爲空:MySQL;空場似乎不是空
SELECT * FROM my_table WHERE my_column != "";
不幸的是許多行獲得發EMAIL:[email protected]其中my_column
是空的,沒有空間,沒有越線。
爲什麼?
我用我的MySQL數據庫這個查詢找到所有行my_column
不爲空:MySQL;空場似乎不是空
SELECT * FROM my_table WHERE my_column != "";
不幸的是許多行獲得發EMAIL:[email protected]其中my_column
是空的,沒有空間,沒有越線。
爲什麼?
你還需要考慮空
SELECT * FROM my_table WHERE my_column != "" OR my_column IS NOT NULL
解決了我的問題:'UPDATE my_table SET my_column = REPLACE(my_column,'\ r','');'。 – user7128548
你還必須檢查NULL值
SELECT * FROM my_table WHERE my_column != "" OR my_column IS NOT NULL
解決了我的問題:'UPDATE my_table SET my_column = REPLACE(my_column,'\ r','');'。 – user7128548
我只好先運行此代碼:
UPDATE my_table SET my_column = REPLACE(my_column,'\r','');
排除空值和空值應該足夠了。如果仍然沒有工作,我的建議是使用十六進制的功能,看看是否該字段包含一些非打印字符:
select
my_column,
hex(my_column)
from
my_table
where
my_column is not null
and my_column != ''
可能會看到一些CR LF字符(分別爲0D 0A和)。
這解決了我的問題:'UPDATE my_table SET my_column = REPLACE(my_column,'\ r','');'。 – user7128548
@ user7128548這意味着您的「空白」列實際上並不是空的,但包含一個或多個CR字符..使用HEX,您可以輕鬆地排除故障 – fthiella
哪個數據類型的my_column? – denny
旁註:您應該爲字符串使用標準單引號:'WHERE my_column!='''。一旦你設置了MySQL的ANSI_QUOTES模式(或者想移動到另一個DBMS),使用雙引號字符串的查詢就會失效。 –