Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Случайная выборка из базы без повторов
 
 автор: Васильда   (22.02.2012 в 03:40)   письмо автору
 
 

Доброй ночи!

Есть простая табличка,


id|par1|par2|par3


и не очень простая задачка как кажется на первый взгляд.

Необходимо делать выборку случайных записей из базы.

Есть два важных момента:
1) получаемые записи не должны повторятся. В случае если законичлись уникальные записи ничего не возвращать.
2) idшники могут быть разряженными.

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

Собственно нужен совет, как эффекетивней это можно реализовать.

  Ответить  
 
 автор: СтепаныЧ   (22.02.2012 в 05:59)   письмо автору
 
   для: Васильда   (22.02.2012 в 03:40)
 


$query="SELECT * FROM table             
            ORDER  by rand()
            LIMIT 3";



ORDER  by rand()
сделает уникальную и случайную выборку без повторов.

  Ответить  
 
 автор: ololosha   (22.02.2012 в 15:30)   письмо автору
 
   для: СтепаныЧ   (22.02.2012 в 05:59)
 

ORDER by rand() - сколько уже статей писали что лучше не использовать его из-за тормозов.

  Ответить  
 
 автор: Valick   (22.02.2012 в 15:45)   письмо автору
 
   для: ololosha   (22.02.2012 в 15:30)
 

ну если без условия и при огромной таблице, то да, а так иногда другого варианта нет

  Ответить  
 
 автор: Valick   (22.02.2012 в 07:51)   письмо автору
 
   для: Васильда   (22.02.2012 в 03:40)
 

если вам нужно перебрать всю базу без повторений, то без хранения идишников в другом месте не обойтись
и почему вы думаете что с производительностью будут какие-то проблемы?
в процессе работы удаление вставка в базу имеет место быть?
ну и если не секрет в целом код это реклама или тесты?
___
и кстати для вопросов по MySQL есть соответствующий раздел, так вопросы быстрее находят отвечающих

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования