Ich arbeite mit einer Tabelle von Elementen mit Ablaufdatum, diese Elemente werden Benutzern zugewiesen.MySql - Standard-Datum von max innerhalb des Falles ausschließen
mag ich für jeden Benutzer bekommen, die höchste Ablauf date.The Ausgabe hier ist, dass Standardelemente mit einem ‚3000/01/01‘ Verfallsdatum initialisiert werden, die ignoriert werden sollen, wenn ein anderes Element für diesen Benutzer existiert .
ich habe eine Abfrage, das zu tun:
SELECT user_id as UserId, CASE WHEN (YEAR(MAX(date_expiration)) = 3000) THEN ( SELECT MAX(temp.date_expiration) FROM user_items temp WHERE YEAR(temp.date_expiration) <> 3000 and temp.user_id = UserId ) ELSE MAX(date_expiration) END as date_expiration FROM user_items GROUP BY user_id
Diese arbeitet, aber die Abfrage innerhalb DANN wird Block Leistung zu töten ein bisschen und es ist ein großer Tisch.
Gibt es also eine bessere Möglichkeit, das Standarddatum von der MAX-Operation zu ignorieren, wenn die CASE-Bedingung eingegeben wird?
Toller Perforationsschub! –