[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySql запрос
deman455
Подскажите пожалуйста правильный запрос. Надо выбрать одну случайную строку из тех в которых определенная ячейка >5 и <10 . На примере покажу:

-----------------
id score
-----------------
1 3
2 7
3 11
4 9
-----------------

Из этого списка в ячейке Score всего 2 ряда который попадают под условие >5 и <10 . А теперь так же надо выбрать случайным образом одного из них (на примере их 2, а может быть 100 и т.д.)
В этом примере результат должен быть id 2 или id 4

Извиняюсь если вопрос покажется глупым, mysql знаю не так хорошо как хотел бы.



Спустя 12 минут, 41 секунда (8.11.2010 - 11:40) silius написал(а):
ну к примеру так:

mysql_query("SELECT * FROM table WHERE score > 5 AND score < 10 ORDER BY id RAND() LIMIT 0,1");

Спустя 14 минут, 55 секунд (8.11.2010 - 11:55) deman455 написал(а):
Ругается: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RAND() LIMIT 0,1' at line 1

MySQL server version , Это из за хоста? Хост платный, хороший

Спустя 13 минут, 27 секунд (8.11.2010 - 12:08) silius написал(а):

mysql_query("SELECT * FROM table WHERE score > 5 AND score < 10 RAND() ORDER BY id LIMIT 1")


звеняй, не затестил wink.gif

Спустя 2 минуты, 37 секунд (8.11.2010 - 12:11) linker написал(а):
mysql_query("SELECT * FROM `table` WHERE `score` > 5 AND `score` < 10 ORDER BY RAND() LIMIT 1");

Спустя 5 минут, 10 секунд (8.11.2010 - 12:16) deman455 написал(а):
Тот же прикол...
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RAND() LIMIT 1' at line 1

Спустя 29 минут, 17 секунд (8.11.2010 - 12:45) linker написал(а):
Код в студию, ибо запрос 100% правильный.

Спустя 45 минут, 53 секунды (8.11.2010 - 13:31) deman455 написал(а):
<?php
$dblocation = "localhost";
$dbname = "user";
$dbuser = "user";
$dbpasswd = "*******";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo 'Reply=Сервер базы данных не доступен!';
exit();
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo 'Reply=База данных не доступна&Reply2=значение2';
exit();
}else {
$ath = mysql_query("SELECT * FROM `users` WHERE `score` > 100 AND `score` < 200 ORDER BY `user_id` RAND() LIMIT 1");
$row = mysql_fetch_array($ath) or die(mysql_error());
echo $row['user_id'].' : '.$row['score'];
}
?>

Спустя 3 минуты, 14 секунд (8.11.2010 - 13:34) SlavaFr написал(а):
но это не то, что тебе @linker предложил.

Спустя 27 секунд (8.11.2010 - 13:35) deman455 написал(а):
Ответ:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/e/.../test.php on line 18

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RAND() LIMIT 1' at line 1

Спустя 2 минуты, 13 секунд (8.11.2010 - 13:37) deman455 написал(а):
А, извеняюсь. Все отлично работает. Я не заметил.

Спустя 8 минут, 48 секунд (8.11.2010 - 13:46) linker написал(а):
$ath = mysql_query("SELECT * FROM `users` WHERE `score` > 100 AND `score` < 200 ORDER BY RAND() LIMIT 1") or die(mysql_error());
if ($row = mysql_fetch_assoc($ath))
echo $row['user_id'].' : '.$row['score'];
else
echo "Ничего не найдено";
Быстрый ответ:

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