Können Parameter in MySQL-Ansichten integriert werden?
Die erste Abfrage versucht, eine Ansicht mit einem Parameter zu erstellen, MySQL verbietet dies jedoch. Die vorgestellte Problemumgehung besteht darin, eine Funktion zum Abrufen des Parameterwerts zu erstellen und ihn dann in die Definition der Ansicht zu integrieren. Dieser Ansatz gilt jedoch aufgrund seiner Komplexität und mangelnden Eleganz als unbefriedigend.
Das Hauptziel besteht darin, eine Ansicht zu erstellen, in der Parameter direkt verwendet werden können, um die Gruppierung und Filterung von Daten zu erleichtern. Betrachten Sie die Ansichten MergedDenialsViewHelper und MergedDenials. Um Ablehnungen für bestimmte Benutzer und Funktionen innerhalb eines definierten Zeitrahmens anzuzeigen, wird ein Parameter verwendet:
SET @DenialMergingTime := 5; SELECT GroupTime, FeatureId, UserHostId, MultiplicitySum FROM MergedDenials WHERE UserHostId IN (1, 2) AND FeatureId IN (3, 4);
Diese Methode ist zwar effektiv, aber aufgrund ihrer komplizierten Natur problematisch. Es gibt einen alternativen Ansatz: Erstellen einer Funktion, um den gewünschten Parameterwert zurückzugeben.
create function p1() returns INTEGER DETERMINISTIC NO SQL return @p1;
Anschließend kann eine Ansicht mit der integrierten Funktion erstellt werden:
create view h_parm as select * from sw_hardware_big where unit_id = p1() ;
Wenn diese Ansicht vorhanden ist , Parameter können direkt verwendet werden:
select s.* from (select @p1:=12 p) parm , h_parm s;
Diese Lösung macht den vorherigen Workaround überflüssig, vereinfacht den Gesamtprozess und verbessert die Lesbarkeit der Code.
Das obige ist der detaillierte Inhalt vonKönnen MySQL-Ansichten Parameter für die dynamische Datenfilterung akzeptieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!