/ / Prestashop - filter zobrazenia zoznamu - mysql, kde, alias, prestashop, klauzula

Prestashop - Zoznam zobrazujúci filter - mysql, kde, alias, prestashop, klauzula

Vložím ďalší stĺpec do zoznamu zobrazovania môjho modulu, ktorý vkladá hodnoty pomocou funkcie getList, modifikoval som sql tak, aby sa filtroval vo funkcii renderList, ale nemôžem použiť alias v klauzule where.

Ako ho môžem opraviť?

Chyba, ktorú mám, je ďalšia:

Uncaught Unknown column "product_supplier_name" in "where clause"<br /><br />
 SELECT SQL_CALC_FOUND_ROWS a. *, S.name AS product_supplier_name Z ps_supplier_bill a LEFT JOIN ps_supplier s ON s.id_supplier = a.id_product_supplier KDE 1 A product_supplier_name LIKE "% fa%" OBJEDNÁVKA BY product_supplier_name asc LIMIT 0,50

odpovede:

0 pre odpoveď č. 1

Správny dotaz by mal byť tento:

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

Nie je možné použiť priamo alias v KDE, pretože chronologicky KDE dôjde pred VYBRAŤ, čo je vždy posledným krokom v reťazci vykonávania. VIZ

Z dokumentu MySQL:

Štandardný SQL zakazuje odkazy na aliasy stĺpcov v klauzule WHERE. Toto obmedzenie sa ukladá, pretože keď sa hodnotí klauzula WHERE, hodnota stĺpca ešte nebola určená.

MySQL doc