форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Проблема с запросом SQL |
| Автор | Сообщение |
| acsid Alfa Guru 2410 |
# Дата: 18 Апр 2008 22:52 ° Поправил: acsid Делаю рейтинг фотографий. В БД Есть таблица(условно): foto|rating|count|score Где: rating значения от 1 до 5 count значения от 0 до бесконечности (колличество проголосовавших) score значения от 0 до бесконечности (общее колличество баллов) Ситуация Предположим есть в этой таблице несколько фотографий: foto|rating|count|score f1 |5 |9 |45 f2 |5 |19 |95 f3 |5 |20 |100 f4 |5 |21 |105 Далее я делаю запрос с сортировкой SELECT * FROM `bg_grafiks` WHERE `rating`='5' ORDER BY `score` DESC и мне выдаёт значения: foto|rating|count|score f2 |5 |19 |95 f1 |5 |9 |45 Короче проблема в том, что когда score больше чем 99, запрос его игнорирует. Почему это происходит? ![]() |
| Константин TorrentMaster 3497 |
# Дата: 19 Апр 2008 00:56 Парочка встречных вопросов: Почему в where условии идет проверка по полю rate вместо rating и сравнение со строкой '5' вместо числа 5? Какой тип и ограничение на длину имеет поле score? |
| acsid Alfa Guru 2410 |
# Дата: 19 Апр 2008 10:48 Константин » Константин Почему в where условии идет проверка по полю rate вместо rating и сравнение со строкой '5' накладочка) » Константин со строкой '5' вместо числа 5так .. скорее всего это первый баг » Константин Какой тип и ограничение на длину имеет поле scorevarchar(100) |
| Константин TorrentMaster 3497 |
# Дата: 19 Апр 2008 11:28 acsid Сделай integer - иначе он у тебя во-первых выбирает не то, что ты хочешь, а во-вторых сортирует как строки - поэтому скажем 100 у тебя будет "меньше" 99. Если у тебя 999 нет score, то ты не увидишь вначале следующие строки, которые ожидаешь + наверняка у тебя там еще Limit стоит, т.ч. вообще не увидишь эти строки |
| acsid Alfa Guru 2410 |
# Дата: 19 Апр 2008 12:18 Константин limit не стоит. Поставил INT ,всё запаботало. Спасиба ![]() |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:23977, gzipped size:7915 |