Думаю этот ответ стоит откомментировать, ибо в вашей логиге заблуждение как раз из первой группы, так как вы думаете, что группировка в MySQL работает так же как и в остальных СУБД.
Рассмотрите этот пример
drop table if exists null_equals_zero;
create table null_equals_zero(int_value int,
group_value int
)
engine = innodb;
insert into null_equals_zero
values (null, 1), (0, 2), (1, 3);
select distinct int_value
from null_equals_zero
group by group_value;
+-----------+
| int_value |
+-----------+
| NULL |
| 1 |
+-----------+
delete from null_equals_zero;
insert into null_equals_zero
values (0, 1), (null, 2), (1, 3);
select distinct int_value
from null_equals_zero
group by group_value;
+-----------+
| int_value |
+-----------+
| 0 |
| 1 |
+-----------+
и обязательно посмотрите, что будет если группировка делается по одному полю, а выбирается другое.
С чего вы взяли?
После данного запроса ваша реплика вылетит а дамп придется чистить руками ибо:
create table unlimited_table (new_bigint_field bigint(65535));
ERROR 1439 (42000): Display width out of range for column 'new_bigint_field' (max = 255)
а в моей БД такие таблицы бывают ;)
show create table new_unlimited_table \G
*************************** 1. row ***************************
Table: new_unlimited_table
Create Table: CREATE TABLE `new_unlimited_table` (
`new_bigint_field` bigint(65535) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
А по моему все выводы в этой статье некорректны это же сарказм… Вся статья. Я не пояснил истинные причины ни по одному из примеров. Тут истина только то что mysql выдает кучу не документированного бреда в самый не подходящий момент. И именно это и есть зло.
Вы вообще о чем?
Я прошу БД сделать мне bigint из строки длиной 10!
substr(repeat(' ', 21848), 10)
А что получаю в итоге? А то что я пишу что null равно 0 или любой другой пример вас не насторожило что ли?
А то что cast( as signed integer) на выходе дает mediumtext тоже не о чем не говорит? Конечно вы не сможете записать туда такие значения и сделать вид что это bigint.
Ну я как бы об этом и писал. Вы запрос ты выполнить не поленитесь. А потом посмотрите структуры созданной таблицы. И подумайте что будет при восстановлении БД из бэкапа или репликации.
Когда я забываю указать поля вставки в insert или допускаю в своем коде деление на ноль, мне некого ругать кроме самого себя. А вот когда выясняется, что null is not null это уже из другой области.
Можете составить такой же пример с целыми числами поделив их. Такой же результат должен быть, к сожалению не могу проверить уже. Float в примере просто для простоты восприятия.
Да вы правы ERROR_FOR_DIVISION_BY_ZERO на который я рассчитывал фиксит это только для DML операций согласно документации. Но опять же согласно ей же это поведение для мускуля нормально. Просто надо к нему привыкнуть и при необходимости ставить coalesce. Так же думаю надо проверить как это работает в процедурах. Там же ест обработчик деления на ноль. Он должен перехватить. Но согласитесь то о чем вы написали все знают как хорошо документированную фичу.
Никто не говорит что твоя позиция неверна или не имеет право на существование, но ты можешь думать головой и делать корректную подачу материала? Или ума хватает только на кописпаст найденной ссылки? Зацензурируй ссылку, сделай скрины или проведи монтаж ролика, если уж журналистом заделался поработай над материалом!
Если бы автор сказал что там есть порно — ему бы не поверили. Просто он не придумал другого более корректного способа, как донести до масс информацию о том, что на сайте имеется ролики, которые противоречат текущей общественной морали. Он решил выложить как есть.
Автор откуда ссылка? Прислал кто или сам нашел?
Всему свое место. ЦП в интеренете много, но основаня часть общества (по крайней мере в моей стране) не приемлет публикацию данного контента на всеобщее обозрение. Хабр и сайт первого канала — не место для таких тематических интересов. Пусть те кому это интересно лезут в глубокий веб, встречаются на частных вечеринках, мне все равно, лишь бы детей не насиловали, но это уже другая история. Но объясните почему главный ИТ ресурс рускоговорящего интернета и сайт Государственного телевидения открыто занимается распространением запрещенного контента.
Ну сказали что на певром был, молодец — выложи пару скринов цензурированных, стукни админу, и все пройдет гладко и без отторжения.
Мна на хабре нужны новости о том что какие-то мудаки (это ещё кстати вопрос откуда там видое) залили видео c ЦП на сайт 1tv.ru, а не сссылки на это видео! А позиция мы не несем ответственности за наш контент в зрелом обществе ущербна и не ведет ни к чему хорошему.
ИМХО тот журналист, который нашел это видео в сети и сохранил — мудак и извращенец, мотивировавший свое желание пофапать на детскую порнографию, необходимостью проведения расследования и объективного предоставления материала. У меня дочь в этом возрасте, только в школу отвел — смотреть противно!
Уберите ссылку — по комментам и так понятно что там.
Заебали двойные стандарты, журналисты моральные уроды! КАК МОЖНО ТАКОЕ В ПАБЛИК ВЫКЛАДЫВАТЬ!
С чего вы взяли что это сервера МВД?
Завтра самолично министр обороны, выйдет с обращением, что это направленный дефейс серверов и в активах серверов Ministry of Internal Affairs of Ukraine этот сервер отсутствует. Все это провокация россиских СМИ нацеленная на свержение легитимно избранной власти (или американских СМИ у вас там в Украине кто сейчас в оппозиции).
И вообще винды у них нигде не стоит и вордом они не пользуются, а это все это ложь 3.14здешь и провокация…
А серьезно — было б дело в штатах уже сегодня вечером бы Министр обороны подал в отставку… но…
и обязательно посмотрите, что будет если группировка делается по одному полю, а выбирается другое.
После данного запроса ваша реплика вылетит а дамп придется чистить руками ибо:
а в моей БД такие таблицы бывают ;)
Я прошу БД сделать мне bigint из строки длиной 10!
substr(repeat(' ', 21848), 10)
А что получаю в итоге? А то что я пишу что null равно 0 или любой другой пример вас не насторожило что ли?
Автор откуда ссылка? Прислал кто или сам нашел?
Ну сказали что на певром был, молодец — выложи пару скринов цензурированных, стукни админу, и все пройдет гладко и без отторжения.
Мна на хабре нужны новости о том что какие-то мудаки (это ещё кстати вопрос откуда там видое) залили видео c ЦП на сайт 1tv.ru, а не сссылки на это видео! А позиция мы не несем ответственности за наш контент в зрелом обществе ущербна и не ведет ни к чему хорошему.
Уберите ссылку — по комментам и так понятно что там.
Заебали двойные стандарты, журналисты моральные уроды! КАК МОЖНО ТАКОЕ В ПАБЛИК ВЫКЛАДЫВАТЬ!
Завтра самолично министр обороны, выйдет с обращением, что это направленный дефейс серверов и в активах серверов Ministry of Internal Affairs of Ukraine этот сервер отсутствует. Все это провокация россиских СМИ нацеленная на свержение легитимно избранной власти (или американских СМИ у вас там в Украине кто сейчас в оппозиции).
И вообще винды у них нигде не стоит и вордом они не пользуются, а это все это ложь 3.14здешь и провокация…
А серьезно — было б дело в штатах уже сегодня вечером бы Министр обороны подал в отставку… но…
www.google.ru/search?sourceid=chrome&ie=UTF-8&q=%D0%92%D0%B0%D0%BB%D0%B8%D0%B4%D0%BD%D1%8B%D0%B5+%D0%94%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%82%D1%8B+%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82%D0%BD%D1%8B%D1%85+%D0%BA%D0%B0%D1%80%D1%82
только учтите — что надо быть полным идиотом чтобы работать шестеркой у генералов, которые увели карты и разработали гениальный план как их обналичить.