Реклама на сайте Advertise with us

Sql

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 24/10/08 в 19:12       Ответить с цитатойцитата 

правильно выполнить запрос к базе,

оператор Select,
смысл: выбрать случайным образом все значения из базы которые удовлетворяют условиям поиска,
в базе где то 1,5к записей

x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.

0
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 24/10/08 в 19:27       Ответить с цитатойцитата 

я непонял чтото случайным образом выбрать все значения.. если и так все зачем случайным?! отрандомить выдачу ORDER BY RAND();

6+9

2
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 24/10/08 в 19:46       Ответить с цитатойцитата 

в теле ранд() пусто, или по определенному значению можно указать?

например что то типа ранд(`id`),

x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.

0
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 24/10/08 в 20:26       Ответить с цитатойцитата 

6+9

5
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 25/10/08 в 08:45       Ответить с цитатойцитата 

ну если sql запрос принципиален то можно выплюнуть все значения а далее через php уже выбрать рандомные...

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

5
 



С нами с 03.10.08
Сообщения: 129
Рейтинг: 141

Ссылка на сообщениеДобавлено: 25/10/08 в 09:25       Ответить с цитатойцитата 

_s_[sov]: +1
Все значения удовлетворяющие поиск, а далее рандомно выбрать!

5
 



С нами с 22.08.05
Сообщения: 530
Рейтинг: 801

Ссылка на сообщениеДобавлено: 25/10/08 в 11:23       Ответить с цитатойцитата 

SELECT id, url, desc
FROM table
WHERE url LIKE '%porn%'
ORDER BY rand( )

5
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 25/10/08 в 11:42       Ответить с цитатойцитата 

ну в принципе да, можно и так
выбрать а потом пхп рандомно, просто с точки зрения производительности имеет смысл, хотя я думаю что сильно не скажется

x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.

0
 



С нами с 01.02.07
Сообщения: 231
Рейтинг: 294

Ссылка на сообщениеДобавлено: 27/10/08 в 18:27       Ответить с цитатойцитата 

интересно, ответы изменились бы если бы было указано что условию будет удовлетворять не 1.5k а 1.5m записей icon_wink.gif

5
 



С нами с 08.02.03
Сообщения: 10558
Рейтинг: 5961


Передовик Master-X (01.06.2018) Передовик Master-X (16.06.2019) Передовик Master-X (01.04.2020) Передовик Master-X (16.04.2020) Передовик Master-X (16.10.2021) Ветеран трепа Master-X (01.11.2021)
Ссылка на сообщениеДобавлено: 27/10/08 в 21:01       Ответить с цитатойцитата 

В этом случае у тебя могла бы велететь ошибка что недостаточно памяти ;)

3
 



С нами с 03.10.08
Сообщения: 129
Рейтинг: 141

Ссылка на сообщениеДобавлено: 27/10/08 в 23:05       Ответить с цитатойцитата 

JM писал:
В этом случае у тебя могла бы велететь ошибка что недостаточно памяти ;)

Просто сначало прописать функцию рондомирования, после делать выборку + эта функция. Можно облегчить работу с БД. А вообще лучше разбивать такие базы.

3
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 28/10/08 в 16:42       Ответить с цитатойцитата 

Что за функция рэндомирования? У мускуля нет толкового рэндома, даже на базе 1.5к он тормозит, а при мало-мальской нагрузке вешает всё.

Варианта три. Первый - делать RAND(`id`) Самый плохой вариант в силу описанных выше причин.

Второй - выгружать базу в скрипт и уже из скрипта делать выборку как хочется. Конечно, если база будет 1.5м и выше, то эта задача никак не для php.

Третий, самый оптимальный, если идентификаторы (поле `id`) записей идут попорядку. Тогда узнаётся общее количество записей (COUNT), после чего делается рэндом $id=rand(1,$count); и потом уже этот id спокойно выбирается с помощью SELECT .. WHERE id=$id

Ещё можно делать рэндом не в риалтайме, а раз в какой-то промежуток времени с помощью ORDER BY RAND

создай свою партнёрку

5
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 28/10/08 в 20:04       Ответить с цитатойцитата 

CJLOG писал:
Что за функция рэндомирования? У мускуля нет толкового рэндома, даже на базе 1.5к он тормозит, а при мало-мальской нагрузке вешает всё.

Варианта три. Первый - делать RAND(`id`) Самый плохой вариант в силу описанных выше причин.

Второй - выгружать базу в скрипт и уже из скрипта делать выборку как хочется. Конечно, если база будет 1.5м и выше, то эта задача никак не для php.

Третий, самый оптимальный, если идентификаторы (поле `id`) записей идут попорядку. Тогда узнаётся общее количество записей (COUNT), после чего делается рэндом $id=rand(1,$count); и потом уже этот id спокойно выбирается с помощью SELECT .. WHERE id=$id

Ещё можно делать рэндом не в риалтайме, а раз в какой-то промежуток времени с помощью ORDER BY RAND


все верно, 3й оптимальный, так и поступил

x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.

0
 



С нами с 03.10.08
Сообщения: 129
Рейтинг: 141

Ссылка на сообщениеДобавлено: 28/10/08 в 23:28       Ответить с цитатойцитата 

CJLOG: Вот в совем посте это я и имел введу, только выразился не правельно!

5
 



С нами с 01.02.07
Сообщения: 231
Рейтинг: 294

Ссылка на сообщениеДобавлено: 29/10/08 в 13:39       Ответить с цитатойцитата 

вариант третий правильный, но не универсальный
а универсальный это использовать директиву offset N limit 1;
где N - случайное число от 0 до total_size - 1

5
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »