#php #mysql #sql #select
#php #mysql #sql #выберите
Вопрос:
Я использую ajax для извлечения большего количества фотографий в галерею на основе просмотров. В галерее уже есть набор из 10 фотографий. Теперь я хочу получить следующие 10 фотографий в порядке, основанном на количестве просмотров от высокого к низкому.
$last_image_view_count = 232;
"SELECT * from `gallery` ORDER BY CAST(`views`<'$last_image_view_count' AS SIGNED) DESC LIMIT 10";
Приведенный выше код работает…но это не в порядке (230 — 216 — 205 и т.д.). Он разбросан, но меньше 232. Мне нужна помощь, чтобы выяснить, как упорядочить его от высокого к низкому.
Комментарии:
1. Сравнение возвращает либо
0
или1
. Если вы хотите сортировать по количеству просмотров, почему вы сортируете по сравнению?2. Разве это сравнение не должно быть в предложении WHERE?
Ответ №1:
"SELECT * from `gallery` WHERE `views` < '$last_image_view_count' ORDER BY `views` DESC LIMIT 10";
Используйте WHERE-statement, чтобы выбрать только желаемый набор данных (насколько я понимаю, вы хотите их, с количеством просмотров, которое меньше $last_image_view_count
).
Затем вы можете упорядочить его по views
столбцу.
Нет необходимости приводить его в инструкции ORDER BY. Что вы делаете со своим кодом, так это упорядочиваете его по 1
or 0
(1, если views меньше вашей переменной, в противном случае 0).
Комментарии:
1. Это работает, но он упорядочивает его по первому числу целого числа… 402, 4, 398, 39, 38, 37, 365, 362, и т.д.