Hvem skal man have fat i med seriøse mysql querys og problemer? Sagen er den at vores produkt søgning er blevet for langsom efter jeg har udvidet den til at søge i en masse flere data. Derfor er jeg ved at skrive en helt ny sql streng. Mit problem er at jeg LEFT JOIN'er products_collection til products, men det felt den gør det "ON" er i den ene tabel et VARCHAR og i den anden INT, hvilket ikke kan lave om (Forklaring følger). Det er denne linje der er problemet: products_collection as pc ON p.collection_id = pc.id p.collection_id indeholder et varenummer (tal, bogstaver og -'er), med mindre det er en vare som har ekstra data fra products_collection. Hvis den har ekstra data indeholder feltet kun INT og dermed kan de to tabeller pares. Spørgsmålet er nu om der skal lave en eller anden form for if, som tjekker om p.collection_id er en INT inden der bliver lavet en LEFT JOIN eller om man kan tvinge min "ON" i den pågældende linje til at sammenligne som VARCHAR. Et eksempel på problem stillingen er: 1. Varenummer: 01-53022017 (Uden ekstra data og derved indeholder p.collection_id varenummeret (01-53022017)). 2. Varenummer: 054E-SR221XX (Med ekstra data i products_collection, hvor dataen har pc.id = 1 og p.collection_id indeholder 1). Når man så søger efter navnet på vare 2, så finder den også vare 1. Håber nogen forstår mit volapyk og evt. ved hvem man skal have fat på. Hele min QUERY: SELECT |
Har du indexes på alle de ting du søger i?
Hvis ikke, så kan du med fordel starte med at få styr på det.