2015-03-26 1 views
0

Я запускаю запрос в Phpmyadmin, а также выполняю тот же запрос с php PDO, но результаты не равны. Что может быть неправильным? Это запрос:разница между phpmyadmin и php PDO

SELECT dim_date_key as date ,dim_jdate_key as jdate, SUM(val_call_counts) as count 
FROM `fact_j_service_location_table_ts` 
WHERE `dim_time_stamp` >= '1426451400' 
AND `dim_time_stamp` < '1427311800' 
AND dim_service_id = 2 
GROUP BY dim_date_key 
LIMIT 0,10; 

PhpMyAdmin:

date  jdate  count 
20150316 13931225 5711  
20150317 13931226 6170  
20150318 13931227 7244  
20150319 13931228 7825  
20150320 13931229 6261  
20150321 13940101 4622  
20150322 13940102 4513  
20150323 13940103 4671  

но PHP возвращает:

20150316 13931225 6295  
20150317 13931226 6170  
20150318 13931227 7244  
20150319 13931228 14170 
20150320 13931229 6261  
20150321 13940101 4622  
20150322 13940102 16879 
20150323 13940103 4671  

и вот скрипт:

$sql = "SELECT dim_date_key as date ,dim_jdate_key as jdate, SUM(val_call_counts) as count 
    FROM `fact_j_service_location_table_ts` 
    WHERE `dim_time_stamp` >= '1426451400' 
    AND `dim_time_stamp` < '1427311800' 
    AND dim_service_id = 2 
    GROUP BY dim_date_key 
    LIMIT 0,10;"; 
$db = new PDO($server ,$username, $pass, $opt); 
$this_result = $db->prepare($sql); 
$this_result->execute(); 
//$error = $this_result->errorInfo(); 

$res = $this_result->fetchAll(PDO::FETCH_ASSOC); 
+0

Без просмотра кода PHP/PDO было бы невозможно узнать. –

+0

@JayBlanchard, как вы просили, я отредактировал описание и добавил скрипт php. –

+0

Небольшая догадка: MySQL не гарантирует порядок, если вы не укажете его, так что возможно, что тот же запрос без запуска ORDER BY в разное время вернет строки в другом порядке. Использование предложения LIMIT для такого запроса может потенциально выбрать другую партию строк. Я не уверен, как это работает с «GROUP BY» в миксе, но было бы интересно увидеть результаты без предложения LIMIT. –

ответ

0

Я не уверен, но счет и дата зарезервированное ключевое слово в MySQL, поэтому, если вы попытаетесь сбежать от него, он должен работать:

AS `date` 
AS `count` 
Смежные вопросы