Heim > Datenbank > MySQL-Tutorial > Können MySQL-Ansichten Parameter für die dynamische Datenfilterung akzeptieren?

Können MySQL-Ansichten Parameter für die dynamische Datenfilterung akzeptieren?

Linda Hamilton
Freigeben: 2024-12-05 10:39:15
Original
464 Leute haben es durchsucht

Can MySQL Views Accept Parameters for Dynamic Data Filtering?

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);
Nach dem Login kopieren

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;
Nach dem Login kopieren

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() ;
Nach dem Login kopieren

Wenn diese Ansicht vorhanden ist , Parameter können direkt verwendet werden:

select s.* from (select @p1:=12 p) parm , h_parm s;
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage