Помогите с запросов mysql

Статус
В этой теме нельзя размещать новые ответы.

rostisslav

Постоялец
Регистрация
27 Мар 2007
Сообщения
365
Реакции
142
Есть запрос
-----------------------
$query = "select * from `data` ORDER by id DESC LIMIT 500";
$result = mysql_query($query, $link) or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
--------------------------------------------------
Все работает счас есть необходимость выбрать случайных 500 записей сделал запрос!
$query = "select * from `data` ORDER BY RAND() LIMIT 500";
$result = mysql_query($query, $link) or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
------------------------------------------
Но не работает где ошибка О великие гуру!
Спасибо! Гарантированно!
 
предположу, что ошибка здесь. Здесь вообще запрос примерно такой: "сортировать по хз какому рандомно выбранному числу, в хз какой последовательности с лимитом на выборку в 500 записей"
покопайтесь в мануалах по запросам к базе, здесь скорее всего без условий не обойтись. если не докопаетесь до истины, то пишите :)
И еще на вопрос ответьте: 500 случайных вообще или 500 со случайного старта?
А знаки пунктуации в Вашем сообщение - жесть :)
 
предположу, что ошибка здесь. Здесь вообще запрос примерно такой: "сортировать по хз какому рандомно выбранному числу, в хз какой последовательности с лимитом на выборку в 500 записей"
покопайтесь в мануалах по запросам к базе, здесь скорее всего без условий не обойтись. если не докопаетесь до истины, то пишите :)
И еще на вопрос ответьте: 500 случайных вообще или 500 со случайного старта?
А знаки пунктуации в Вашем сообщение - жесть :)

Ошибаетесь, уважаемый, есть такой оператор

2 ТС: Какую ошибку выводит-то?
 
tirrex, какой оператор, Вы о чем? Я не говорю о не существовании чего то.
Derag - не знал. но по-моему, криво, все равно и не понятно. имхо
 
$query = "select * from `data` ORDER BY RAND() LIMIT 500";

А по чем вы сортируете ? Вообще не вижу смысла в вашем запросе! Как известно в myssql данные хранятся хаотически тоесть в разброс.

Ваш запрос выглядит не корректно как писалось уже выше, "Выбрать все из таблицы data и отсортировать неизвестно почем и еще и в разброс" Естественно тут будет ошибка :)

Можно попробовать делать выборку основываясь на числе элементов в целом и функции RAND(:(
Код:
SELECT * FROM data JOIN (
    SELECT CEIL(RAND() * (
        SELECT MAX(id) FROM data
            )) AS randomID
    ) AS random_table ON random_table.randomID=data.ID
 
удалено...
 
select * from `data` ORDER BY RAND() LIMIT 500

Запрос составлен верно, всё должно работать. Могу посоветовать проверить кодировку символов запроса - может при вводе кода пхп для соответствующих символов были сделаны переключения на рус.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху