Заменить нулевые значения в SQL с помощью оператора выбора? - PullRequest
11 голосов
/ 26 марта 2012

Как это сделать?Какой запрос можно написать с помощью оператора select , где все нули должны быть заменены на 123?

Я знаю, что мы можем сделать это, используя, обновить таблицу set set fieldname = "123" где fieldname isnull;

, но не может сделать это с помощью оператора select .

Ответы [ 4 ]

28 голосов
/ 26 марта 2012

У вас есть много вариантов замены значений NULL в MySQL:

CASE

select case 
    when fieldname is null then '123' 
    else fieldname end as fieldname 
from tablename 

COALESCE

select coalesce(fieldname, '123') as fieldname 
from tablename 

IFNULL

select ifnull(fieldname, '123') as fieldname 
from tablename 
6 голосов
/ 26 марта 2012

Существует оператор IFNULL, который принимает все входные значения и возвращает первое ненулевое значение.

пример:

select IFNULL(column, 1) FROM table;

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_ifnull

1 голос
/ 26 марта 2012

Я думаю, что вы ищете функцию IFNULL IFNULL(field, 0) вернет 0, когда поле вернет ноль

0 голосов
/ 26 марта 2012

Оператор UPDATE необходим для обновления данных в таблице. Вы не можете использовать оператор SELECT для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...