MySQL Bedingte gespeicherte Prozeduren IF – CASE

Prozeduren werden mit bedingtem IF gespeichert

Wir werden eine Datenbank und eine Tabelle mit Kommentaren erstellen, die Benutzer machen. Dies können Artikel, Beiträge oder was auch immer wir wollen sein.

CREATE TABLE `comments` (
`idcommentary` int (11) DEFAULT NULL,
`date` date DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
`Kommentar` Text,
PRIMARY KEY (“Zufall”)
) ENGINE = MyISAM DEFAULT CHARSET = latin1;

Wir werden eine gespeicherte Prozedur erstellen, die die Anzahl der von einem Benutzer hinterlassenen Kommentare zählt und die Ebene zurückgibt, in der sich dieser Benutzer befindet, wobei als Referenz für das Beispiel verwendet wird.

Experte, wenn Sie mehr als 5000 Kommentare gemacht haben
Erweitert, wenn Sie zwischen 4999 und 1000-mal kommentiert haben
Moderator, wenn Sie zwischen 999 und 500-mal kommentiert haben
Editor, wenn Sie zwischen 499 und 100-mal kommentiert haben

. Wir erstellen die gespeicherte Prozedur und sie wird zwei Parameter haben, einer wird die ID oder Benutzernummer eingeben, deren Variable p_user ist, und der andere wird die Ebene mit der Variablen p_level sein .

mysql-procedure-if.jpg

Wir erklären die gespeicherte Prozedur, die wir nennen, wir nehmen eine ID = 112 an
CALL nivelusuario (112)
Wählen und zählen Sie die Anzahl der Kommentare für diesen Benutzer und speichern Sie sie in der Gesamtvariablen, dann in der Struktur, wenn Sie der Variablen p_level die Ebene zuweisen und den Wert zurückgeben.

<? // Wir bereiten eine Abfrage von PHP vor
$ result = $ mysqli-> query (“CALL nivelusuario (112)”);
$ row = $ result-> fetch_assoc ();
echo ‘Level:’. $ row [‘p_level’]; ?>

Prozeduren mit bedingtem CASE gespeichert

Die Operation ist der vorherigen sehr ähnlich, nur die Bedingung ist CASE und in diesem Beispiel erhalten wir die Kosten für das Senden oder den Zuschlag entsprechend dem Standort eines Kunden.

See also  Kombinieren (verketten) Sie Text aus mehreren Zellen in Excel zu einer

mysql-procedure-if-2.jpg

Wir nehmen eine idcity = 2 an und rufen die gespeicherte Prozedur auf
CALL costenvio (2)

<? // Wir bereiten eine Abfrage von PHP vor
$ result = $ mysqli-> query (“CALL costenvio (2)”);
$ row = $ result-> fetch_assoc ();
echo ‘Zuschlag für Lieferung’. $ row [‘p_recargo’]; ?>

Innerhalb der durch die bedingten Strukturen bereitgestellten Möglichkeiten können wir die if- oder case-Strukturen verwenden, um mehrere Aktionen mit einer einzelnen gespeicherten Prozedur auszuführen
Wir werden zum Beispiel eine gespeicherte Prozedur erstellen, um Produkte zu verwalten, an die wir einen Parameter senden können, um dann zu bestimmen, welche Aktion oder Aufgabe wir ausführen werden.

mysql-procedure-if-3.jpg

Wir können sehen, dass wir im Produktprozess einen Parameter namens p_accion haben, also weisen wir zu, ob die Aktion ein neues Produkt speichert oder in der Datenbank ändert

Beispiel zum Einfügen eines neuen Produkts

<? // Wir bereiten eine Abfrage von PHP vor
$ result = $ mysqli-> query (“CALL-Produkte (10, ‘Mobiltelefon’, ‘100.00’, ‘Neu’)”);
echo ‘Das Produkt wurde registriert’; ?>

Beispiel zum Einfügen einer Bearbeitung oder zum Ändern eines Produkts

<? // Wir bereiten eine Abfrage von PHP vor
$ result = $ mysqli-> query (“CALL-Produkte (10, ‘MXC3-Mobiltelefon’, ‘120.00’, ‘Bearbeiten’)”);
echo ‘Das Produkt wurde geändert’; ?>

Diese Methode ist sehr nützlich, um als CRUD bezeichnete Aufgaben zu gruppieren, dh Daten zu erstellen, zu lesen, zu bearbeiten und zu löschen sowie alle in derselben Datei angeordneten Aktualisierungen und Suchvorgänge durchzuführen. Dies erleichtert die Wartung und die Möglichkeit, die Datenbank bei Bedarf zu skalieren. .
Sie ermöglicht es auch aus Sicht der Funktionsanalyse, die Geschäftsregeln der Anwendung klarer zu gestalten.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *