|
|
|
| Необходимо сделать запрос случайных двух подряд идущих значений с условием, что первое значение нечетное. Т.е., например те, где id == 3 и 5 или == 15 и 16.
Подскажите, как сделать подобный запрос.
Спасибо. | |
|
|
|
|
|
|
|
для: aetern
(28.09.2010 в 22:24)
| | где id == 3 и 5 или == 15 и 16
ну и где логика?
id - не бывает четных или нечетных, это не порядковый номер строки, а гарант её уникальности (если конечно id у Вас именно первичный ключ)
Расскажите при каких обстоятельствах у Вас возникла подобная задача, скорее всего где-то ошибка в логике. | |
|
|
|
|
|
|
|
для: Valick
(30.09.2010 в 07:58)
| | где id == 3 и 4 (ошибся)
А задача была в выводе 1 случайной пары изображений. В свое время на сайте была установлена галерея и в нее заносились изображения ("до" и "после" ремонта, друг за другом), но полей "до" и "после" в таблице не предусмотрели и изображения идут подряд и отформатированы по полю "pos", начиная с 1.
Я сделал так:
<?
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM table"), 0);
$x = rand(1, $count); if($x%2==0) $x=$x-1;
$query = mysql_query("SELECT pos FROM table WHERE pos >= ".$x." ORDER by pos LIMIT 2");
?>
|
| |
|
|
|
|
|
|
|
для: aetern
(30.09.2010 в 23:42)
| |
<?
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM table"), 0);
$x1 = rand(1, $count); if($x1%2==0) $x2=$x1-1; else $x2=$x1+1
$query = mysql_query("SELECT pos FROM table WHERE pos=$x1 AND pos=$x2 ORDER by pos");
?>
|
На мой взгляд без лимита красивее
только естественно выбирать в селекте pos и ничего кроме него, мягко говоря не разумно :) | |
|
|
|