Подтвердить что ты не робот

Запрос MySql Замените NULL пустой строкой в ​​Select

Как вы заменяете значение NULL в элементе с пустой строкой? Это не очень профессионально выводить значения "NULL".

Это очень необычно и на основе моего синтаксиса я ожидаю, что он сработает. Надеюсь объяснить, почему это не так.

select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;

Пример того, как выглядит исходная таблица, что я хочу и какие фактические отпечатки:

original     wanted      what actually prints
--------     ------      ---------------------
value1       value1      
NULL                     NULL
value2       value2      
NULL                     NULL

Как вы можете видеть, это делает противоположное тому, что я хочу, поэтому я попытался перевернуть IS NULL на NOT NULL и, конечно же, не исправил его, также попытался заменить позицию, когда дело не срабатывало.

Изменить: Кажется, что три решения, приведенные ниже, выполняют всю задачу. рассматривает

select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test
4b9b3361

Ответ 1

Некоторые из этих встроенных функций должны работать:

Coalesce
Is Null
IfNull

Ответ 2

Если вы действительно должны выводить все значения, включая NULL:

select IFNULL(prereq,"") from test

Ответ 3

SELECT COALESCE(prereq, '') FROM test

Coalesce вернет первый непустой аргумент, переданный ему слева направо. Если все аргументы равны null, он вернет значение null, но мы вынуждаем туда пустую строку, поэтому никакие нулевые значения не будут возвращены.

Также обратите внимание, что оператор COALESCE поддерживается в стандартном SQL. Это не относится к IFNULL. Так что это хорошая практика, чтобы использовать прежнюю. Кроме того, имейте в виду, что COALESCE поддерживает более двух параметров, и он будет перебирать их до тех пор, пока не будет найдено непустое совпадение.

Ответ 4

Попробуйте ниже;

  select if(prereq IS NULL ," ",prereq ) from test

Ответ 5

Оригинальная форма почти идеальна, вам просто нужно опустить prereq после CASE:

SELECT
  CASE
    WHEN prereq IS NULL THEN ' '
    ELSE prereq
  END AS prereq
FROM test;

Ответ 6

Попробуйте COALESCE. Он возвращает первое значение, отличное от NULL.

SELECT COALESCE(`prereq`, ' ') FROM `test`

Ответ 7

Попробуйте это, это также должно избавиться от этих пустых строк:

SELECT prereq FROM test WHERE prereq IS NOT NULL;

Ответ 8

select IFNULL('prereq','') as ColumnName FROM test

этот запрос выбирает значения "prereq", и если какое-либо из значений имеет значение null, он показывает пустую строку, как вам нравится. Итак, он показывает все значения, но значения NULL отображаются пустыми

Ответ 9

У меня есть пустые значения (NULL в качестве значения по умолчанию) в необязательном поле в базе данных. Они не приводят к появлению значения "null" на веб-странице. Однако значение "ноль" вводится в действие при создании данных через форму ввода веб-страницы. Это произошло из-за того, что JavaScript принял ноль и переписал его в строку "ноль" при отправке данных через AJAX и jQuery. Удостоверьтесь, что это не основная проблема, так как простое выполнение вышеупомянутого является всего лишь бандой для реальной проблемы. Я также реализовал вышеуказанное решение IFNULL (...) в качестве двойной меры. Благодарю.

Ответ 10

UPDATE your_table set your_field="" where your_field is null