MySQL Select-Anweisung: Produktsichtbarkeit mithilfe von Herstellereinstellungen ermitteln
Ihr Ziel ist es, eine Abfrage zu erstellen, die die Sichtbarkeit von Produkten anhand von Regeln berechnet in der Herstellertabelle definiert. Konkret möchten Sie bestimmen, wo ein Produkt angezeigt werden kann (z. B. überall, nur Kanada oder nur USA).
Die anfängliche Abfrage versucht, eine IF/ELSEIF-Anweisung innerhalb einer Unterabfrage zu verwenden, um die Sichtbarkeit zu berechnen. Dieser Ansatz ist jedoch falsch. Erwägen Sie stattdessen die Verwendung einer CASE-Anweisung, um den Status des Produkts auszuwerten und die entsprechende Sichtbarkeitsstufe zuzuweisen.
Die bereitgestellte CASE-Anweisung weist ein kleines Problem auf: Sie wertet unabhängig vom Status des Produkts immer die erste WHEN-Bedingung aus. Um dies zu beheben, entfernen Sie die AND-Bedingung aus jeder WHEN-Klausel.
Die folgende überarbeitete Abfrage sollte das gewünschte Ergebnis liefern:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
Diese Abfrage wertet den Status jedes Produkts aus, ob „Neu“. ' oder 'Verwendet' und gibt die entsprechende Sichtbarkeitsstufe zurück, die in der Herstellertabelle definiert ist.
Das obige ist der detaillierte Inhalt vonWie kann die Produktsichtbarkeit in MySQL anhand der Herstellereinstellungen ermittelt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!