Ответ 1
Некоторые из этих встроенных функций должны работать:
Coalesce
Is Null
IfNull
Как вы заменяете значение 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
Некоторые из этих встроенных функций должны работать:
Coalesce
Is Null
IfNull
Если вы действительно должны выводить все значения, включая NULL:
select IFNULL(prereq,"") from test
SELECT COALESCE(prereq, '') FROM test
Coalesce вернет первый непустой аргумент, переданный ему слева направо. Если все аргументы равны null, он вернет значение null, но мы вынуждаем туда пустую строку, поэтому никакие нулевые значения не будут возвращены.
Также обратите внимание, что оператор COALESCE поддерживается в стандартном SQL. Это не относится к IFNULL. Так что это хорошая практика, чтобы использовать прежнюю. Кроме того, имейте в виду, что COALESCE поддерживает более двух параметров, и он будет перебирать их до тех пор, пока не будет найдено непустое совпадение.
Попробуйте ниже;
select if(prereq IS NULL ," ",prereq ) from test
Оригинальная форма почти идеальна, вам просто нужно опустить prereq после CASE:
SELECT
CASE
WHEN prereq IS NULL THEN ' '
ELSE prereq
END AS prereq
FROM test;
Попробуйте COALESCE
. Он возвращает первое значение, отличное от NULL.
SELECT COALESCE(`prereq`, ' ') FROM `test`
Попробуйте это, это также должно избавиться от этих пустых строк:
SELECT prereq FROM test WHERE prereq IS NOT NULL;
select IFNULL('prereq','') as ColumnName FROM test
этот запрос выбирает значения "prereq", и если какое-либо из значений имеет значение null, он показывает пустую строку, как вам нравится. Итак, он показывает все значения, но значения NULL отображаются пустыми
У меня есть пустые значения (NULL в качестве значения по умолчанию) в необязательном поле в базе данных. Они не приводят к появлению значения "null" на веб-странице. Однако значение "ноль" вводится в действие при создании данных через форму ввода веб-страницы. Это произошло из-за того, что JavaScript принял ноль и переписал его в строку "ноль" при отправке данных через AJAX и jQuery. Удостоверьтесь, что это не основная проблема, так как простое выполнение вышеупомянутого является всего лишь бандой для реальной проблемы. Я также реализовал вышеуказанное решение IFNULL (...) в качестве двойной меры. Благодарю.
UPDATE your_table set your_field="" where your_field is null