|
|
|
| Есть ли красивый и короткий способ получить из базы запись с максимальным зачением указанного поля? | |
|
|
|
|
|
|
|
для: Ray
(28.10.2005 в 15:55)
| | Да. Для этого используют функцию МАХ.
SELECT MAX(number) FROM table
|
number - имя поля из которого хотите получить максимальное значение | |
|
|
|
|
|
|
|
для: napTu3aH
(28.10.2005 в 16:29)
| | Большое человеческое мерси :) | |
|
|
|
|
|
|
|
для: napTu3aH
(28.10.2005 в 16:29)
| | не получается :(
$query="SELECT MAX('Ndog') FROM $dogtable";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$Ndog=stripslashes($row["Ndog"]);
|
в базе Ndog равен 1
а выводится пустышка :(
Может, это из-за того, что это поле типа TEXT ? | |
|
|
|
|
|
|
|
для: Ray
(04.11.2005 в 19:24)
| | >Может, это из-за того, что это поле типа TEXT ?
Да из-за этого, а почему оно должно быть именно TEXT, нельзя изменить его тип? | |
|
|
|
|
|
|
|
для: cheops
(05.11.2005 в 10:29)
| | Изменить нельзя, т.к. там буквенно-цифровые обозначения :(
А сам код выборки правильный? | |
|
|
|
|
|
|
|
для: Ray
(07.11.2005 в 11:52)
| | Да, но со строками будут проблемы... так как они сравниваются посимвольно с первого символа
а не позиционно как цифры
| |
|
|
|
|
|
|
|
для: cheops
(07.11.2005 в 13:12)
| | сделал это поле INT (11). Однофигственно, не выбирается :( | |
|
|
|
|
|
|
|
для: Ray
(07.11.2005 в 11:52)
| | Вопрос к автору:
Простите, а по какому критерию вы (не прибегая к программированию) собираетесь выбирать из строк максимальные? | |
|
|
|
|
|
|
|
для: spiner
(07.11.2005 в 13:15)
| | Забудь про строки :)
Не получается выбрать даже из целых чисел :( | |
|
|
|
|
|
|
|
для: Ray
(08.11.2005 в 09:12)
| | Приведите структуру вашей таблицы, может злостная ошибка кроетсья именно там :-)) | |
|
|
|
|
|
|
|
для: napTu3aH
(08.11.2005 в 09:55)
| | По-моему, одинарные кавычки мешают. Попробуйте MAX(stolb) - stolb - имя столбца. | |
|
|
|
|
|
|
|
для: Shorr Kan
(08.11.2005 в 10:51)
| | Скорее всего Shorr Kan прав дело в кавычках, если это числовое поле, то нужно без них, а с кавычками число воспринимаеться, как строка. | |
|
|
|
|
|
|
|
для: napTu3aH
(08.11.2005 в 11:09)
| | никак не выбирается :(
ни с кавычками, ни без
всегда выдется пустышка | |
|
|
|
|
|
|
|
для: napTu3aH
(08.11.2005 в 09:55)
| | дык таблица примитивнейшая:
n int(10) auto_increment
fio text
Ndog int(11)
Ndog в базе равно= 1,2,3,510,123
Если выбирать из базы по n, то запись отдается.
А мне нужно получить запись с макс. значением Ndog | |
|
|
|
|
|
|
|
для: Ray
(08.11.2005 в 19:17)
| | Хмммм.... очень странно.У меня все работает как часики. Попробуйте выполнить вот такой запрос.
SELECT * FROM talbe ORDER BY Ndog DESC LIMIT 0,1
|
Какой получаеться результат? | |
|
|
|
|
|
|
|
для: napTu3aH
(08.11.2005 в 20:01)
| | Получается то, что нужно. Выдает максимальное значение.
А вот мой код почему-то не работает :-\ | |
|
|
|
|
|
|
|
для: Ray
(08.11.2005 в 20:12)
| | Запрос, который я написал выше, практически аналогичен вашему. Только вот ума не могу приложить, почему не работает МАХ. Может где-то синтаксическая ошибка?
SELECT MAX(Ndog) FROM table
|
| |
|
|
|
|
|
|
|
для: Ray
(08.11.2005 в 20:12)
| | Если вы про этот код:
$query="SELECT MAX('Ndog') FROM $dogtable";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$Ndog=stripslashes($row["Ndog"]);
|
то конечно не выбирается.
Замените его так:
$query="SELECT MAX(Ndog) as max_ndog FROM $dogtable";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$Ndog=stripslashes($row['max_ndog']);
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(08.11.2005 в 20:28)
| | Ага. Так тоже выбирается :)
Спасибо! | |
|
|
|