- 1
and (ss_1<>'SS0001' or ss_1<>'SS0002' or ss_1<>'SS0010')
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−176
and (ss_1<>'SS0001' or ss_1<>'SS0002' or ss_1<>'SS0010')
Сегодня на продакшене было обнаружено гениальное выражение в одном из запросов.
Her 01.07.2015 11:40 # +1
inkanus-gray 01.07.2015 12:15 # +4
wvxvw 01.07.2015 13:41 # +3
inkanus-gray 01.07.2015 14:26 # +1
crazy_horse 01.07.2015 15:32 # +1
someone 02.07.2015 15:40 # 0
Kozel 07.07.2015 12:05 # 0
bormand 07.07.2015 12:32 # +2
3_14dar 07.07.2015 13:18 # −1
bormand 07.07.2015 16:38 # 0
3_14dar 01.07.2015 18:47 # −1
inkanus-gray 01.07.2015 23:39 # 0
Подсказки:
1. Вот это вменяемое выражение:
2. Вот это тоже вменяемое выражение:
3. Вот это совершенно НЕвменяемое выражение:
4. Подсказка кэпа: ss_1 не может быть одновременно равно 'SS0001' И 'SS0002' И 'SS0010', потому что в SQL (и даже в PHP, о, боже!) 'SS0001' <> 'SS0002' <> 'SS0010'.
Хоть одно из выражений вида ss_1=='текст' должно не выполниться, если все тексты разные => хоть одно из выражений вида ss_1<>'текст' обязательно выполнится (если все тексты разные).
3_14dar 02.07.2015 01:18 # +1
Fike 02.07.2015 02:02 # +2
3_14dar 02.07.2015 02:28 # −1
Fike 03.07.2015 09:54 # 0
Vasiliy 02.07.2015 13:25 # 0
Fike 02.07.2015 13:53 # +1
http://psizin.livejournal.com/134782.html?thread=413054&mode=reply
inkanus-gray 02.07.2015 14:13 # 0
Fike 02.07.2015 16:04 # 0
kegdan 03.07.2015 07:49 # 0
Vasiliy 03.07.2015 10:42 # +1
:D
defecate-plusplus 03.07.2015 11:09 # +1
roman-kashitsyn 03.07.2015 11:13 # +2
TarasB 03.07.2015 12:20 # +2
kegdan 04.07.2015 14:46 # +2
Все говорят, но не многие знают в каком...
ropuJIJIa 20.09.2019 21:07 # 0
guest8 18.09.2019 03:31 # −999
Pretty_Young_Thing 18.09.2019 04:23 # 0
guest8 20.09.2019 07:26 # −999
Stertor 01.07.2015 14:40 # −1
TarasB 01.07.2015 15:56 # +3
написать
Так труднее догадаться.
inkanus-gray 01.07.2015 23:40 # 0
guest8 18.09.2019 03:29 # −999
3_14dar 02.07.2015 01:19 # −1
inkanus-gray 02.07.2015 02:03 # 0
Да хотя бы так:
http://www.wolframalpha.com/input/?i=s%21%3D1+or+s%21%3D2+or+s%21%3D3
Кстати, SymPy так умеет?
inkanus-gray 02.07.2015 02:22 # 0
SymPy умеет едва ли не всё, но не умеет упрощать булевы выражения.
guest8 17.09.2019 23:45 # −999
ropuJIJIa 18.09.2019 00:14 # 0
>> SELECT 1 = NULL;
NULL
>> SELECT 1 <> NULL;
NULL
NULL при сравнении с любым значением и на равенство, и на неравенство даст NULL.
guest8 18.09.2019 01:06 # −999
guest8 18.09.2019 03:05 # −999
MAKAKA 18.09.2019 03:07 # 0
Ебланство какое, правда?
ropuJIJIa 18.09.2019 06:36 # 0
We all give the best
Every minute of an hour,
Don't think about the rest.
Теперь даже горилла поняла, что правильный ответ ss_1 IS NOT NULL, а не ss_1 <> NULL.
Создатели «SQL», введя нулябля, сломали аристотелеву логику. В «SQL» выражение (B or not B) может быть не равно единице, поэтому даже упрощать формулы нельзя.
В сишке ничего из этого нет.
ropuJIJIa 20.09.2019 20:28 # 0
В копилку «совпадений»:
https://youtu.be/pATX-lV0VFk
https://youtu.be/5ZBgP48WrNA
guest8 20.09.2019 20:47 # −999
torvaldsfinger 20.09.2019 20:55 # 0
ropuJIJIa 20.09.2019 22:11 # 0
https://youtu.be/zIV-vFk0HWU
По сравнению с оригиналом слишком бледно.
guest8 18.09.2019 02:41 # −999
KOHCOjlbHblu_nemyx 20.09.2019 20:47 # −102