2017-02-06 5 views
0

Я использую этот запрос в моей базе данных MySQL, чтобы найти все строки, где my_column не пусто:MySQL; пустое поле, кажется, не быть пустым

SELECT * FROM my_table WHERE my_column != ""; 

К сожалению, многие строки получить listet где my_column не пусто, нет места и нет Разрыв строки.

Зачем?

+0

какой тип 'my_column'?; – denny

+0

Сиденит: вы должны использовать стандартные одинарные кавычки для строк: 'WHERE my_column! = '''. После того, как вы установили режим ANSI_QUOTES MySQL (или хотите перейти на другую СУБД), запросы с двойными кавычками выглядят неверно. –

ответ

2

вам также необходимо рассмотреть нулевой

SELECT * FROM my_table WHERE my_column != "" OR my_column IS NOT NULL 
+0

Это решило мою проблему: 'UPDATE my_table SET my_column = REPLACE (my_column, '\ r', '');'. – user7128548

3

Вы также должны проверить нулевые значения

SELECT * FROM my_table WHERE my_column != "" OR my_column IS NOT NULL 
+0

Это решило мою проблему: 'UPDATE my_table SET my_column = REPLACE (my_column, '\ r', '');'. – user7128548

1

Я должен был запустить этот код первым:

UPDATE my_table SET my_column = REPLACE(my_column,'\r','');

0

Без учета пустых и нулевых значений должно быть достаточно. Если это все еще не работает, мое предложение использовать функцию HEX, чтобы увидеть, если поле содержит некоторые не печатаемые символы:

select 
    my_column, 
    hex(my_column) 
from 
    my_table 
where 
    my_column is not null 
    and my_column != '' 

вы можете увидеть некоторые символы LF CR (0D и 0A соответственно).

+0

Это решило мою проблему: 'UPDATE my_table SET my_column = REPLACE (my_column, '\ r', '');'. – user7128548

+0

@ user7128548 Это означает, что ваши «пустые» столбцы на самом деле пустые, но содержат один или несколько символов CR. С помощью HEX вы можете легко устранить проблему – fthiella