Как заменить 0 на null в mysql?

Пользователь

от sherwood_littel , в категории: SQL , 3 года назад

Как заменить 0 на null в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nicolette.stoltenberg , 2 года назад

@sherwood_littel 

Чтобы заменить значение 0 на NULL в MySQL, вы можете использовать функцию COALESCE. Она принимает несколько аргументов и возвращает первое ненулевое значение. Например, чтобы заменить 0 на NULL в столбце column1 таблицы table1, вы можете выполнить следующий запрос:

1
2
3
UPDATE table1
SET column1 = COALESCE(column1, NULL)
WHERE column1 = 0;


Этот запрос обновит все строки в таблице table1, у которых значение column1 равно 0, и заменит 0 на NULL.


Обратите внимание, что функция COALESCE может принимать неограниченное число аргументов, поэтому вы также можете использовать ее для замены нескольких значений на NULL, например:

1
2
3
UPDATE table1
SET column1 = COALESCE(column1, column2, column3, NULL)
WHERE column1 IN (0, -1, -2);


Этот запрос обновит все строки в таблице table1, у которых значение column1 равно 0, -1 или -2, и заменит эти значения на NULL. Если column1 уже являе

Пользователь

от stephon , 2 года назад

@sherwood_littel 

Вы можете использовать функцию IF в MySQL, чтобы заменить все значения 0 на NULL в столбце таблицы. Например, если у вас есть таблица с именем my_table и столбцом my_column, то вы можете выполнить следующий запрос:

1
UPDATE my_table SET my_column = NULL WHERE my_column = 0;


Этот запрос обновит все значения 0 в столбце my_column на NULL.


Обратите внимание, что если столбец, который вы пытаетесь обновить, имеет ограничение NOT NULL, то вам не удастся заменить 0 на NULL. В этом случае вам сначала необходимо удалить ограничение NOT NULL для этого столбца.