Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.63.87] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
select "тут всякая фигня запроса"
выдает к примеру 10000 записей а мне нужно к примеру 10 случайных записей из результата. делать select а потом выбирать оттуда 10 случайных записей по вполне понятным причинам не хочется. есть ли в mysql что-либо для этого(или нечто похожее-главное- случайность резуьтата)? |
Сообщ.
#2
,
|
|
|
добавь в конце limit x,10
при генерации запроса за место x подставляй случайное число. + делай случайные сортировки. |
Сообщ.
#3
,
|
|
|
а как определим x?
если к примеру x будет больше чем кол-во записей в резуьтате запроса? |
Сообщ.
#4
,
|
|
|
определи максимальное значение еще 1 селектом
select count(*) from table_name потом сгенерируй x от 0 до count(*) и подставь в тот селект. |
Сообщ.
#5
,
|
|
|
Ни фига себе нагрузочка получится
если на каждый запрос делать такой селект, то все колом встанет очень быстро |
Сообщ.
#6
,
|
|
|
Нагрузка будет маленькая, такой (select count(*) from table_name) запрос выполняется очень быстро.
И делать тебе его надо только 1 раз в начале сессии твоей проги. Т.е. запустилась, узнала кол-во записей и потом делает эти случайные выборки. MySQL очень быстрый (т.е. быстрее mssql и oracle в ввиду отсутствия большой функциональности) и может выдержать очень большую нагрузку. |