Это баг мускула или нет?

steel_HILL

Постоялец
Регистрация
15 Апр 2010
Сообщения
53
Реакции
14
Вот недавно столкнулся с проблемой на одном хостинге. Если кратко, то проблема в стандартном запросе селектом с лимитом -
SELECT * FROM `table` WHERE `link_id`='1' LIMIT 0,20

Если строк c "link_id" равным единице меньше 20 то все нормально, но вот если их больше, то тогда первая строка отсутствует...

Может кто уже сталкивался с этой проблемой?
 
90%, что никакой это не баг, а просто среди 20+ строчек ты не видишь своей "первой", тк сортировка не задана, а дефолтная сортировка записей в таблице может быть рандомной, не по primary key.
Добавь ORDER BY id - и поверь глазам своим :)
 
и поверь глазам своим

Я уже по всякому пробовал - весь прикол в том, что на денвере и на другом хосте с тем же дампом таблицы при любом варианте все корректно выводится, а на этом хосте при тестировании с количеством полученных при суммировании результатов из mysql_num_rows выводит например цифру 79, хотя всего строк должно быть 80.
И еще, мои глаза подсказывают мне, что там мускул глючит часто - иногда то кодировку покорежит, то дубликаты одной записи в разделе выдаст, так что возможно, что действительно я эту первую строчку при варианте с количеством строк выше лимита просто "не вижу", но "не вижу" только на данном хостинге :)
 
Чтобы у мускула потерялась одна запись из таблицы - должно хз что случиться, скорее побьется целая таблица или база, но никогда не приходилось сталкиваться, тьфу х3 :)
Возможно, ты выбираешь из постоянно обновляющейся таблицы, или вариант-паранойя - у тебя дыры в коде/гости в бд ))

ЗЫ. Если у хостинга проблемы с мускулом - это к смене хостера ;)
 
Назад
Сверху