簡體   English   中英

Phalcon PHQL GROUP BY錯誤

[英]Phalcon PHQL GROUP BY error

GROUP BY添加到我的查詢時,Phalcon給我一個錯誤-Phalcon \\ Mvc \\ Model \\ Exception:語法錯誤,意外的令牌GROUP,靠近'BY ...

這是我的代碼;

$phql = "
    SELECT $dist $ads_model.id AS id, $ads_model.title AS title, $ads_model.description AS description, $ads_model.country AS country, $ads_model.city AS city, $ads_model.latitude AS latitude, $ads_model.longitude AS longitude, $image_model.file AS image
    FROM $ads_model
    LEFT JOIN $image_model ON $image_model.ad_id = $ads_model.id
    WHERE $where
    GROUP BY $ads_model.id
    $order
    ";
    $ads = $this->modelsManager->executeQuery($phql);

這是正在生成的查詢;

Phalcon\Mvc\Model\Manager->executeQuery(\n SELECT (3959 * acos( cos( radians( xxxx ) ) * cos( radians( \Baseapp\Models\ClassifiedsAds.latitude ) ) * cos( radians( \Baseapp\Models\ClassifiedsAds.longitude ) - radians( xxxx ) ) + sin( radians( xxxx ) ) * sin( radians( \Baseapp\Models\ClassifiedsAds.latitude ) ) ) ) AS distance, 
\Baseapp\Models\ClassifiedsAds.id AS id, \Baseapp\Models\ClassifiedsAds.title AS title, \Baseapp\Models\ClassifiedsAds.description AS description, \Baseapp\Models\ClassifiedsAds.country AS country, \Baseapp\Models\ClassifiedsAds.city AS city, \Baseapp\Models\ClassifiedsAds.latitude AS latitude, \Baseapp\Models\ClassifiedsAds.longitude AS longitude, \Baseapp\Models\ClassifiedsImages.file AS image\n 
FROM \Baseapp\Models\ClassifiedsAds\n 
LEFT JOIN \Baseapp\Models\ClassifiedsImages ON \Baseapp\Models\ClassifiedsImages.ad_id = \Baseapp\Models\ClassifiedsAds.id\n 
WHERE \Baseapp\Models\ClassifiedsAds.status = 'active' Having distance <= 100\n 
GROUP BY \Baseapp\Models\ClassifiedsAds.id\n 
ORDER BY distance ASC\n )

在MySQL中運行查詢的簡化版本可以正常工作。 為什么Phalcon搞砸了GROUP BY子句? 如果忽略了GROUP BY則查詢將運行。 如何在PHQL中使用它?

同樣作為一個完全相關的問題:我正在為此使用PHQL,因為Phalcon的分頁似乎不適用於原始MySQL。 有沒有辦法讓Phalcon分頁與原始文件一起使用(無需進行自定義分頁)?

您的條款順序有誤。

您必須在GROUP BY之后聲明HAVING子句。

 [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] 

有關完整示例,請參考mysql文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM