/ / Prestashop - Filtr widoku listy - mysql, gdzie, alias, prestashop, klauzula

Prestashop - Filtr widoku listy - mysql, gdzie, alias, prestashop, klauzula

Wstawiam inną kolumnę w widoku listy mojego modułu wstawiając wartości za pomocą funkcji getList, zmodyfikowałem sql, aby filtrować funkcję renderList, ale nie mogę użyć aliasu w klauzuli where.

Jak mogę to naprawić?

Wystąpił błąd:

Uncaught Unknown column "product_supplier_name" in "where clause"<br /><br />
 WYBIERZ SQL_CALC_FOUND_ROWS a. *, S.nazwa AS nazwa_producenta_produktu OD ps_supplier_bill a LEFT DOŁĄCZ 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

Odpowiedzi:

0 dla odpowiedzi № 1

Prawidłowe zapytanie powinno wyglądać tak:

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 jest możliwe bezpośrednie użycie aliasu w GDZIE, ponieważ chronologicznie GDZIE dzieje się przed WYBIERZ, co zawsze jest ostatnim krokiem w łańcuchu wykonywania. ODNOSIĆ SIĘ

Z MySQL doc:

Standardowy SQL nie dopuszcza odwołań do aliasów kolumn w klauzuli WHERE. To ograniczenie jest narzucone, ponieważ w przypadku oceny klauzuli WHERE wartość kolumny może jeszcze nie zostać ustalona.

Dokument MySQL