[英]Prestashop - List view filter
我在模塊的列表視圖中插入另一列,並使用getList函數插入值,我修改了sql以在renderList函數中進行過濾,但無法在where子句中使用別名。
我該如何解決?
我得到的錯誤是下一個:
Uncaught Unknown column 'product_supplier_name' in 'where clause'<br /><br />
SELECT SQL_CALC_FOUND_ROWS a.* , s.name AS product_supplier_name FROM ps_supplier_bill a LEFT JOIN ps_supplier s ON s.id_supplier = a.id_product_supplier WHERE 1 AND product_supplier_name LIKE '%fa%' ORDER BY product_supplier_name asc LIMIT 0,50
正確的查詢應為:
SELECT SQL_CALC_FOUND_ROWS a.* , s.`name` AS product_supplier_name FROM `ps_supplier_bill` a LEFT JOIN `ps_supplier` s ON s.`id_supplier` = a.`id_product_supplier` WHERE 1 AND s.`name` LIKE '%fa%' ORDER BY s.`name` asc LIMIT 0,50
不可能在WHERE中直接使用別名,因為按時間順序,WHERE發生在SELECT之前,而SELECT始終是執行鏈中的最后一步。 參考
從MySQL文檔:
標准SQL不允許在WHERE子句中引用列別名。 之所以施加此限制,是因為在評估WHERE子句時,可能尚未確定列值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.