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

Форум MySQL

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

 

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

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

тема: запрос для пары
 
 автор: aetern   (28.09.2010 в 22:24)   письмо автору
 
 

Необходимо сделать запрос случайных двух подряд идущих значений с условием, что первое значение нечетное. Т.е., например те, где id == 3 и 5 или == 15 и 16.
Подскажите, как сделать подобный запрос.
Спасибо.

  Ответить  
 
 автор: Valick   (30.09.2010 в 07:58)   письмо автору
 
   для: aetern   (28.09.2010 в 22:24)
 

где id == 3 и 5 или == 15 и 16
ну и где логика?
id - не бывает четных или нечетных, это не порядковый номер строки, а гарант её уникальности (если конечно id у Вас именно первичный ключ)
Расскажите при каких обстоятельствах у Вас возникла подобная задача, скорее всего где-то ошибка в логике.

  Ответить  
 
 автор: aetern   (30.09.2010 в 23:42)   письмо автору
 
   для: 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");
?>

  Ответить  
 
 автор: Valick   (01.10.2010 в 02:16)   письмо автору
 
   для: 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 и ничего кроме него, мягко говоря не разумно :)

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

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