[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sql rand
tmt0086
Здрасте всем. Прошу помощи в доделке кода и оптимизации.

я вот написал кусочек кода:

while($i<$kolichestvo){
$query1 = "SELECT peremennaya FROM `acc_users` where acc='1' AND id";
$res1 = mysql_query($query1);
$row1 = mysql_fetch_array($res1);

//тут запись в массив

$i++;
}


как реализовать вытаскивание peremennaya, рандомно по id (тоесть мы берем рандомно id и вытаскиваем peremennaya) я в запросе не знаю как id рандомно выставить.

Ну и вопрос как это все оптимизировать, тк таблица имеет много много строк (около кк).
Вытаскивать нужно 1, 2, 4 строки..



Спустя 2 минуты, 29 секунд (11.06.2011 - 17:39) sharki написал(а):
для рандома можно использовать mysql функцию RAND()

Спустя 3 минуты, 39 секунд (11.06.2011 - 17:43) tmt0086 написал(а):
Цитата (sharki @ 11.06.2011 - 14:39)
для рандома можно использовать mysql функцию RAND()

это понятно! но вот как? просто нужно же указать мин и макс значения (или нет?)

Спустя 6 минут, 12 секунд (11.06.2011 - 17:49) sharki написал(а):
ну имитировать min max можно

... and `id` BETWEEN 1 and 40
ORDER BY RAND()


Спустя 1 минута, 40 секунд (11.06.2011 - 17:51) tmt0086 написал(а):
Цитата (sharki @ 11.06.2011 - 14:49)
ну имитировать min max можно

... and `id` BETWEEN 1 and 40
ORDER BY RAND()


а не имитировав, возможно?

Спустя 2 минуты, 2 секунды (11.06.2011 - 17:53) sharki написал(а):
вроде как нет, в мане такого варианта нет

Спустя 12 минут, 59 секунд (11.06.2011 - 18:06) tmt0086 написал(а):
sharki, вот так сделал, все вроде как работает!

$kolichestvo = '2';
$i = 1;
while($i<$kolichestvo){

$query1 = "SELECT ljname, ljpass FROM `acc_users` where acc='1' AND `id` ORDER BY RAND()";
$res1 = mysql_query($query1);
$row1 = mysql_fetch_array($res1);

$number = 1+$i;

$arr["name".$number] = $row1['peremennaya'];

$i++;
}


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

Спустя 2 минуты, 32 секунды (11.06.2011 - 18:08) sharki написал(а):
непонятные манипуляции ты совершаешь biggrin.gif ты пробовал без цклов и в конце запроса добавить LIMIT 2

Спустя 1 минута, 32 секунды (11.06.2011 - 18:10) tmt0086 написал(а):
Цитата (sharki @ 11.06.2011 - 15:08)
непонятные манипуляции ты совершаешь biggrin.gif ты пробовал без цклов и в конце запроса добавить LIMIT 2

biggrin.gif ну вот такой я.. а как потом я буду в массив заносить значения, если лимит будет. (можешь пример показать?)

Спустя 3 минуты, 25 секунд (11.06.2011 - 18:13) sharki написал(а):
  $query1 = "SELECT ljname, ljpass FROM `acc_users` where acc='1'  ORDER BY RAND() LIMIT 2";
$res1 = mysql_query($query1);
$number = 1;
while($row1 = mysql_fetch_assoc($res1)) {
$arr["name".$number] = $row1['peremennaya'];
$number ++;
}



Спустя 2 минуты, 28 секунд (11.06.2011 - 18:16) tmt0086 написал(а):
Цитата (sharki @ 11.06.2011 - 15:13)
  $query1 = "SELECT ljname, ljpass FROM `acc_users` where acc='1'  ORDER BY RAND() LIMIT 2";
$res1 = mysql_query($query1);
$number = 1;
while($row1 = mysql_fetch_assoc($res1)) {
$arr["name".$number] = $row1['peremennaya'];
$number ++;
}

biggrin.gif как все просто! Спасибо.. я просто сен впервые циклы разбираю (НЕНАВИДЕЛ ИХ РЕНЬШЕ!.. и по всякому не хотел связываться) Ну и рандомно тоже впервые


_____________
Продаю людей. Дешего. Писать в ПС
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.