Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Базы данных

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.04.2003, 13:10
cosmo вне форума Посмотреть профиль Отправить личное сообщение для cosmo Найти все сообщения от cosmo
  № 1  
cosmo

Регистрация: Mar 2001
Адрес: Екатеринбург
Сообщений: 286
Отправить сообщение для cosmo с помощью ICQ
По умолчанию Можно ли выбрать из Mysql базы случайные значения?

Возможно ли случайным образом из базы выбрать значения и исключить дуюликаты на языке SQL или для этого обязательно использовать PHP?

Старый 27.04.2003, 00:15
Самурай вне форума Посмотреть профиль Отправить личное сообщение для Самурай Найти все сообщения от Самурай
  № 2  
Самурай
Ветеран форума

Регистрация: Aug 2001
Адрес: /kiev.ua/butuzov
Сообщений: 3,045
Отправить сообщение для Самурай с помощью ICQ
да.

RAND

да хоть перлом....
__________________
...

Старый 05.05.2003, 18:34
inik вне форума Посмотреть профиль Найти все сообщения от inik
  № 3  
inik

Регистрация: Mar 2002
Сообщений: 14
select траляля order by rand();

Старый 05.05.2003, 20:16
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 4  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
...если версия 3.23.5 и выше.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 07.05.2003, 00:03
cosmo вне форума Посмотреть профиль Отправить личное сообщение для cosmo Найти все сообщения от cosmo
  № 5  
cosmo

Регистрация: Mar 2001
Адрес: Екатеринбург
Сообщений: 286
Отправить сообщение для cosmo с помощью ICQ
Как мне избежать такую конструкцию?
Код:
mysql_connect($DBHostName,$DBUserName,$DBPassword);
mysql_select_db($DBName);
$r=mysql_query("select DISTINCT id,text from advtext");
if (@mysql_num_rows($r)<1) {
} else {
for ($j=0; $j<mysql_num_rows($r); $j++) {
$f2=mysql_fetch_array($r);
@$arr[]=$f2[id];
}
}
@shuffle($arr);
echo "<table width=100% border=1 cellspacing=0 cellpadding=0 bordercolor=#FCE8A3><tr>";
for ($k=0; $k<4; $k++) {
$r2=mysql_query("select text,link from advtext where id='$arr[$k]' limit 0,4");
if (@mysql_num_rows($r2)<1) {
} else {
for ($i=0; $i<mysql_num_rows($r2); $i++) {
$f=mysql_fetch_array($r2);
echo "<td width=25% bgcolor=#FDF2CE height=96 align=center><b><font color=#996600><a href='$f[link]'>$f[text]</a></b></font></td>";
}
}
}echo "</tr></table>";
Насколько я понял, RAND() просто генерирует случайное число, а мне нужно вывести случайно 4 результата из базы

Старый 07.05.2003, 05:56
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 6  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Я бы сделал так :

<?
$max = mysql_num_rows($r);
for ($i=0;$i<4;$i++) {
$to_fetch[] = rand($max);
}
$sql = "select * from table where id = " . join (" or id = ", $to_fetch);

// ...
?>

за полноценность кода отвечать не могу : башка не варит

Старый 07.05.2003, 09:36
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 7  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Насколько я понял, RAND() просто генерирует случайное число, а мне нужно вывести случайно 4 результата из базы [/b]
...order by rand() limit ...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 07.05.2003, 13:13
cosmo вне форума Посмотреть профиль Отправить личное сообщение для cosmo Найти все сообщения от cosmo
  № 8  
cosmo

Регистрация: Mar 2001
Адрес: Екатеринбург
Сообщений: 286
Отправить сообщение для cosmo с помощью ICQ
Спасибо. Всё работает. Раз уж здесь собрались гуру MySQL То позволю себе задать ещё один вопрос. Есть ли в MySQL функцию, которая позволяет вычислить длину значения в поле, т.е. нужновы делить из базы то значение, длна которого больше других. Что-то типа MAX(), но MAX() выбирает по первому символу, а мне надо по длине.

Старый 07.05.2003, 13:26
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 9  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
select max(length(field)) ...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 07.05.2003, 23:43
cosmo вне форума Посмотреть профиль Отправить личное сообщение для cosmo Найти все сообщения от cosmo
  № 10  
cosmo

Регистрация: Mar 2001
Адрес: Екатеринбург
Сообщений: 286
Отправить сообщение для cosmo с помощью ICQ
Спасибо ДРУГ. Вот уже во второй раз ты меня спасаешь. СПАСИБО.

Создать новую тему   Часовой пояс GMT +4, время: 06:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.