10:08

The day that you stop running is the day that you arrive.
Сижу, делаю сортировку на одном сайте.
Смотрю - максимальное значение цены у меня выдается почему-то 9, а минимальное - 1000000.
В коде вроде все нормально.

Лезу в PMA, делаю SELECT MAX(cost) FROM table и получаю 9. Делаю SELECT MIN(cost) FROM table и получаю 1000000.

Тип поля - INT.
Начинаю тихо ехать крышей.

Звоню  La personne mystique, чтобы удостовериться, что это не я туплю.

Проверяем размер поля - INT(9), все влезает.

...
...
...
o____O'

И тут я думаю: поле ведет себя так, как будто оно VARCHAR, а не INT. Дай-ка я его выставлю в VARCHAR со сравнением, а потом верну в INT(9).

И заработало! Вероятно, когда-то это поле было VARCHAR, потом его меняли и произошел какой-то сбой в базе...
Первый раз такое вижу))

Но как у меня начала ехать крыша, лоооооол!

Хуже всего было то, что на соседней точно такой же таблице все работало! :-D

@темы: Рабочее, Про меня, Юмор

Комментарии
19.04.2010 в 10:19

Крайне злопамятное хамло ;)
Да, забавно))
Ты PMA юзаешь?)
19.04.2010 в 10:31

The day that you stop running is the day that you arrive.
Co0L угу, привык) он в основном нужен для создания таблиц и проверки запросов)
19.04.2010 в 10:53

Крайне злопамятное хамло ;)
neo_rage
А я как Navicat увидел так PMA больше не признаю ни в каком виде))
19.04.2010 в 11:08

The day that you stop running is the day that you arrive.
Co0L Я несколько таких клиентов в свое время юзал. Сейчас же нет смысла - я в базе провожу минимум времени. Да и не все хостеры дают внешний коннект к мускулу.
19.04.2010 в 12:23

Крайне злопамятное хамло ;)
neo_rage
http тоннель рулит, он идет с ним в комплекте))
несколько таких клиентов
Такого как навикат больше не встречал) Всякие EMS - ерунда) Поэтому и крепко сижу на нем)
19.04.2010 в 12:24

мда ну и страшилки :laugh:
+1 к Навикатикам
19.04.2010 в 13:21

The day that you stop running is the day that you arrive.
Co0L Ну нет особой необходимости) Но учту. Была у меня раньше любимая немецкая прога, но ее поддержку прекратили...
Aristey хехе) так страшилка не из-за PMA, а из-за какого-то косяка в мускуле)
19.04.2010 в 13:29

Крайне злопамятное хамло ;)
Была у меня раньше любимая немецкая прога, но ее поддержку прекратили...
Не MySQL Front ли?) Если он, то это наиболее похожий на Navicat менеджер баз)) Собственно, до того как узнали о Навикате, пользовались именно им))
19.04.2010 в 13:41

The day that you stop running is the day that you arrive.
Co0L во, точно) он самый) я уж за давностью лет забыл - последний раз фиг знает когда пользовался)))
19.04.2010 в 19:19

Не пакіне нас надзея там, дзе няма цемнаты (с)
я за последние две недели из-за БД тоже чуть крышу не потерял.

1.
Таблица содержит два поля decimal(12,0). Есть ещё некое поле-признак. Пишу select if(priznak = 1, POLE, POLE2) as POLE from tablitsa. И получаю часть данных в виде 99999999999, которых там вообще нет. Сижу, туплю. Оказалось, мускуль при подобном выражении автоматом стал преобразовывать результат в int(11) и, если поле не помещалось, нес вот такую ересь.

2.
Есть таблица с большим количеством записей. Одно из полей varchar(12). Все выборки типа select * from tablitsa where POLE = '123123123' работают хорошо. Но стоит один раз выполнить запрос типа select * from tablitsa where POLE in('123123123', '321321321', '2132132123') и трындец. Смотришь глазами — есть значение. Делаешь селект — ни одной записи. Вообще никак. Удаляешь-создаешь-заполняешь таблицу заново — работает. Выполняешь запрос с in — молча перестают работать выборки. Оказалось, работать снова без пересоздания будет либо если через LIKE, либо после явного преобразования в запросе поля с помощью binary.

3.
Вложеный запрос типа select * from tablitsa1 where POLE not in (select POLE from tablitsa2) исключить из таблицы 1 все записи, которые есть в таблице 2 перестает выдавать адекватный результат если во второй таблице несколько тысяч уникальных записей. Единственный вариант который пока хотькак-то работает — проверять скриптом в цикле по результатам запроса select POLE from tablitsa2 наличие записей через select count(*) from tablitsa1 where POLE = POLEizTABLITSY2.
19.04.2010 в 19:22

The day that you stop running is the day that you arrive.
Wizard of the North угу, с таким всегда морочишься и думаешь, где ты дурак...
19.04.2010 в 20:11

Esse quam videri
навикат рулит...
да...мускуль то еще развлекалово..я тоже недавно подобном образом себе мозг выносил. Тоже из варчата в инт преобразовал и долго удивлялся...
20.04.2010 в 17:23

The day that you stop running is the day that you arrive.
Lotion преобразовал(вероятно) предыдущий программист, так что я даже не сразу сообразил ))))))
21.04.2010 в 19:43

Esse quam videri
12.07.2010 в 22:00

Death Metal Bands Shouldn't Say "Thank You", Because It's Not Very "Death Metal"
спасло бы отца русской демократии
13.07.2010 в 03:56

The day that you stop running is the day that you arrive.
Таз Особенно если это форма поиска, и тебе надо написать минимальную и максимальную цены под соответствующими полями ввода. О, да. Просто кривую выдачу я заметил в процессе отладки сортировки.

Кстати, в описанной ситуации ордер так же работал бы некорректно.