форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Вопрос по MySQL |
| Автор | Сообщение |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 05:27 Блин, давно не работал с мускулом, забыл как сделать.. Как из таблицы взять несколько рандомных значений, без забирания всей таблицы в массив и стандартным образом брать, т.е на языке sq это реально сделать? ![]() |
| smallcms Участник 2752 |
# Дата: 23 Мар 2006 06:39 SELECT *(или конкретный/ые столбы) FROM таблицо WHERE столбец=(далее применим rand из PHP, т.к. в MySQL он мягко говоря ну не очень) rand(0, x), где x - число солбов. Только спрашивается: а нафига? Ты боишься выбрать все значения в мОсиф? Суть сделать как можно меньше простых обращений к таблице, а не торкаться каждый раз в мускульный порт по лубому пустяку. SELECT * FROM тоблицо и не слушай никого. ![]() |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 06:50 smallcms Проблема в том, что я могу получить доступ только к строке mysql запроса, а сам запрос выполняется в другом месте... Ранд столбец тоже неподходит... Нужно взять 5 рандомных значений... ![]() |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 06:51 Всё-таки самописные классы работы с txt db рулят. Всегда можно что-то дописать. ![]() |
| smallcms Участник 2752 |
# Дата: 23 Мар 2006 07:04 Андрей в чём проблема? SELECT * FROM таблица WHERE колонка=(PHP)rand(min, max) LIMIT 5 фсиО. ![]() |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 07:11 колонка Так и писать? Колонка? Там id вложенные по дереву. Такой метод можно для flat-type db... А «LIMIT» не имеет необ. значений? Типо LIMIT с_какого_начать , каким_кончить ? |
| smallcms Участник 2752 |
# Дата: 23 Мар 2006 07:17 ° Поправил: smallcms Андрей LIMIT с_какого_начать , сколько_взять а вообще-то я ступил. нужно указать WHERE-условие 5 раз. то есть SELECT * FROM table WHERE id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) о!
зы: не AND, а OR правильно. уфф... |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 07:41 id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) OR id=rand(0,x) Мне такой способ неподходит, у текущей позиции в базе могут быть дочерние элементы с разбросом id, напр id[первый_child] == 0, id[второй_child] == 88888 - и мне нужны все эти элементы с parent_id равной текущей позиции. Наверно придётся остановиться на LIMIT rand(min, max), 5 Только надо будет чтоб rand(min, max) - 5 было не больше всей таблицы... А сколько значений в базе я не знаю. Лол.
Прости если где-то резко, просто уже два часа мудусь. Спасибо, за ответы. ![]() |
| smallcms Участник 2752 |
# Дата: 23 Мар 2006 08:06 Андрей id[первый_child] == 0, id[второй_child] == 88888 а реорганизовать таблу не получится? чтоб всё ровненько по линеечке лежало? или там настолько всё запущено? ![]() |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 08:18 а реорганизовать таблу не получится? или там настолько всё запущено? Datalife engine с 118 категориями. ![]() |
| Андрей Алексеевич 2123 |
# Дата: 23 Мар 2006 12:45 Ура.
Ответ оказался прост: SELECT * FROM my_table ORDER BY rand() LIMIT 3 |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:28644, gzipped size:8520 |