2013-08-17 4 views
0

Мне нужно получить самое высокое значение из столбца mysql db. Это временная метка. Использование MySQL функции MAX это не работает, ржали вы можете увидеть код:Функция запроса MAX не работает

//Create new db object 
$db = new Db(); 

//Query 
$qr_changelog = $db->query(" 
    SELECT MAX(log_datetime) FROM ca_change_log 
"); 

//Fetch result 
$last_change = $qr_changelog->get('log_datetime'); 

//Print result 
echo "Last Change:" . $last_change; 

Если я выполнить запрос без МАХ функцию он работает (но, очевидно, возвращает все значения). Если я запускаю запрос с консоли сервера mysql, он работает. В журнале Apache нет ошибок.

Я также попытался с MySQLi:

$db1 = new mysqli('localhost', 'user', 'passwd', 'db'); 

if($db1->connect_errno > 0){ 
    die('Unable to connect to database [' . $db1->connect_error . ']'); 
} 

$qr_changelog = $db1->query(" 
    SELECT MAX(log_datetime) FROM ca_change_log"); 

while($row = $qr_changelog->fetch_assoc()){ 
    echo $row['log_datetime'] . '<br />'; 
} 

Любые идеи?

ответ

1

Вы можете заказать SQL и Limite значения, если Вы сант максимальное значение. Что-то вроде этого: SELECT log_datetime FROM ca_change_log order by log_datetime dec limite (1).

+0

Привет, спасибо большое, я использовал ваше решение, и оно работает. – sms

3

Вы должны сделать это:

SELECT MAX(log_datetime) AS something FROM ca_change_log GROUP BY log_datetime 

$qr_changelog->get('something'); 
+0

Котировки arent required here - SELECT MAX (поле) AS max_field FROM ... –

+0

@TomaszBanasiak Спасибо. Делает так много измельчения между языками и ароматами. –

+1

Используйте SELECT MAX (log_datetime) как-то FROM ca_change_log GROUP BY log_datetime, чтобы получить только 1 результат –