2016-05-16 8 views
2

Что такое хороший способ найти записи с нулевым значением в наборе столбцов? Что-то вродеmysql запрос для значения по нескольким столбцам

"Select all rows where null IN(col6, col7, col8, col9, col10)" 

Должен ли я выполнять сравнения для каждого столбца?

+0

Каков ожидаемый результат, если (i) один столбец не является нулевым (ii) все столбцы равны нулю? –

ответ

2
where greatest(col6, col7, col8, col9, col10) is null 
+0

Умный и эффективный. Это, по-видимому, использует тот факт, что NULL не больше или меньше, чем любое фактическое значение, поэтому оно выходит сверху каждый раз. – tadman

+0

Ницца. Мне было интересно, почему «NULL» всегда был самым большим(). Кажется, работать так, как я хочу: http://sqlfiddle.com/#!9/eb642c/3 – doub1ejack

+0

NULL не самый большой. Результат просто неопределен, если любой параметр равен NULL. Если результат не определен, возвращается NULL (а не значение). CONCAT() также будет работать. И, вероятно, некоторые другие функции с гибким числом параметров. –

0

Не совсем элегантный, но ни одна из структур db, с которой вы должны работать.

Select all rows where col6 is null or col7 is null or col8 is null or coll9 is null or ...