2015-02-26 2 views
0

Есть ли простой способ в MYSQL исключить все значения фальши в одном выражении? Это необходимо сделать следующее:Запрос MYSQL, который исключает значения ложности

SELECT id FROM table 
WHERE id != '' 
AND id != 0 
AND id IS NOT NULL; 

Спасибо, Том

+0

Обычно поле id является частью первичного ключа, поэтому я думаю, что id всегда! = '' И IS NOT NULL. Таким образом, вы ставите! = '' (String) и! = 0 (число), но который является типом данных поля id? –

+0

Набираются столбцы, поэтому один из 'id! = ''' Или 'id! = 0' должен быть недействительным. В стандарте SQL также указано, что оператор не равный ''>, даже если многие БД поддерживают '! ='. – Phylogenesis

+0

В моем примере 'id' не является ключом primairy. Идентификатор может быть полем varchar или integer, поскольку система, которую я строю, строит этот запрос динамически на основе бизнес-правила, такого как система – TGsera

ответ

0

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

SELECT id FROM table 
WHERE COALESCE(id, '') NOT IN ('', '0'); 
Смежные вопросы