Kompleks søgening
Hej EksperterVores produkt søgning blev simpelthen for tung og langsom.
Derfor er jeg begyndt at skrive den forfra.
Mit problem er nu denne linje:
products_collection as pc ON p.collection_id = pc.id
Feltet
collection_id er et varchar
pc.id er et int
På en eller anden måde bliver collection_id lavet om til int så den finder nogle forkerte data frem, som ikke hører til dette produkt.
Det smarteste var hvis jeg på en eller anden måde kun lavede denne left join hvis collection_id kun indholdte tal. Er det muligt?
SELECT
p.products_id,
pd.products_name,
pd.products_description_1,
pd.products_description_2,
pd.products_description_3,
pc.products_id AS pc_products_id,
pc.products_name AS pc_products_name,
pc.products_description
FROM
products AS p
JOIN
products_description AS pd ON p.products_id = pd.products_id
LEFT JOIN
products_collection as pc ON p.collection_id = pc.id
LEFT JOIN
specification_values as sv ON p.products_id = sv.products_id
WHERE
p.products_status = 1
AND
pd.language_id = 4
AND (
p.products_id LIKE '%".$keyword."%'
OR
pd.products_name LIKE '%".$keyword."%'
OR
pd.products_description_1 LIKE '%".$keyword."%'
OR
pd.products_description_2 LIKE '%".$keyword."%'
OR
pd.products_description_3 LIKE '%".$keyword."%'
OR
pc.products_id LIKE '%".$keyword."%'
OR
pc.products_name LIKE '%".$keyword."%'
OR
pc.products_description LIKE '%".$keyword."%'
OR
sv.value LIKE '%".$keyword."%'
)
GROUP BY
p.collection_id