2016-06-27 2 views
0

У меня есть несколько таблиц SQL, каждый из которых имеет несколько столбцов, где из-за плохой код PHP, значения, которые должны быть NULL являются 0.находка замены через всю таблицу в SQL

Я хочу изменить все 0s к NULL во всех столбцах и во всех строках.

Есть ли способ быстро найти все значения, равные 0 (независимо от того, какой столбец или строка они находятся) в таблице и обновить их до NULL?

Я хочу сделать это с кодом SQL в phpMyAdmin.

+0

Неужели было бы так сложно написать инструкцию 'UPDATE', которая явно упоминает столбцы? Я не думаю, что есть очень хороший способ буквально делать то, что вы просите. –

+0

Существует много таблиц, и имена столбцов уникальны. – grateful

ответ

2

Я не могу думать о какой-либо простой способ сделать это

update yourtable 
Set col1 = case when col1 = 0 then NULL else col1 end, 
    col2 = case when col2 = 0 then NULL else col2 end, 
    .... 
Where 0 in(col1,col2,..) 

Вы должны сделать это для всех таблиц. Если Mysql поддерживает динамический Sql, то вы можете использовать его для кадрирования запросов обновления с помощью INFORMATION_SCHEMA COLUMNS Таблица

+1

И я не мог согласиться подробнее +1 –

+1

Для динамических sqls +1 – SriniV