В таблице есть например такие значения: Код (Text): id val 1 1 2 null 3 null 4 5 5 6 Надо выбрать все id-шки всех строк у которых val не равен 5. Т.е. вот эти все кроме id=4. Просто val <> 5 игнорит значения с null. Вот таким запросом приходится обходится, его в основном если гуглить и советуют: Код (Text): select id from mytable where val is null or val<>5 Но я смотрю что и запрос следующего вида нормально работает: Код (Text): select id from mytable where !(val <=>5) Тут нет подводных камней?
Тем, что это то же самое? Что значит «приходится обходиться»? Именно это условие и делает (в лоб) то, что вы просите. Хотите упростить условие, используйте NOT-NULL-поля и, например, 0 вместо NULL.
нет. print (1 <=> 1); // 0 print (1 <=> 2); // -1 print (2 <=> 1); // 1 --- Добавлено --- это аналогично != --- Добавлено --- и стоп, разве космический оператор в sql есть ?
Повнимательнее. Я писал про != vs <>, что из цепочки постов/цитат четко видно. Так что «да», ты это сам подтвердил: «это аналогично !=» --- Добавлено --- В мускуле есть, но смысл у него совсем другой: это равенство с учетом NULL.
думаю все таки оставлю с OR , оно так очевиднее, особенно если тот мой вариант - это мускул специфичное