но при этом нулл не равен нулу, а в пхп равен.
В скл нулл это неопределённость и она ничему не равна
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Цитата (DedMorozzz @ 6.11.2013 - 21:53) |
На 1й странице описан этот помент Повторюсь. использую псевдокод Нулл в пхп: null == null - true null != null - false В SQL: NULL == NULL - false NULL != NULL - false |
Цитата (Aeq @ 6.11.2013 - 23:55) |
в SQL NULL=NULL вернет NULL а не false, так же как и NULL!=NULL вернет NULL |
SELECT if(NULL != NULL,'yes','NO')
Цитата (DedMorozzz @ 7.11.2013 - 01:20) | ||
спасибо, не знал. Но с другой стороны оператор "иф" в sql работает именно с "тру" и "фолс". По этому странно ожидать, что запрос вида SELECT if(NULL != NULL,'yes','NO') Обрабатыватся будет не булеаном |
Цитата |
Because the result of any arithmetic comparison with NULL is also NULL, you cannot obtain any meaningful results from such comparisons. |
Цитата (Aeq @ 7.11.2013 - 01:00) |
просто внутри функции иф производится 2 проверки: !=0 и is not null, тогда в результате всегда получится булев. в первой проверке сначала делается cast(expr AS SIGNED). можете сами проверить SELECT if ('asd', 'yes', 'no') вернет 'no' потому что asd в signed приведется как 0. про порядок проверок ниче сказать не могу, в код мускула не лазил xD |
Цитата (DedMorozzz @ 7.11.2013 - 16:49) | ||
2 проверки чего? Каждого элемента в условии? Это же заведомо не верно В противном случае эти 2 ситуации должны были выдать одинаковый результат: SELECT if ('asd'='asd', 'yes', 'no'); И SELECT if ('asd'='asf', 'yes', 'no'); Но результаты разные и они полностью соответствуют ожиданию Так что о каких проверках и проверках чего идёт речь? |
Цитата (Aeq @ 7.11.2013 - 17:18) | ||||
проверки первого аргумента. тут же if это просто функция, а не конструкция языка. пишете 'asd'='asd', получается true, оно идет в функцию if(), внутри функции оно кастуется в целое если надо, и если не нулл и не равно нулю, то возвращается второй аргумент, иначе третий. |
Цитата (DedMorozzz @ 7.11.2013 - 17:34) |
Aeq, вот этого дополнения - "проверки чего" и не хватало Ещё раз спасибо за пояснения, работы мускула(даже вернее сказать SQL) в данном случае ![]() |