Heim  >  Artikel  >  Datenbank  >  Wie übergebe ich eine Wertefolge an eine IN-Klausel in einer gespeicherten Prozedur?

Wie übergebe ich eine Wertefolge an eine IN-Klausel in einer gespeicherten Prozedur?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 04:28:30916Durchsuche

How to Pass a String of Values to an IN Clause in a Stored Procedure?

Variablen an eine IN-Klausel übergeben

Betrachten Sie eine gespeicherte Prozedur mit einer SELECT-Anweisung, die eine IN-Klausel enthält:

SELECT product_id, product_price FROM product
WHERE product_type IN ('AA','BB','CC');

Wenn Sie die Werte der IN-Klausel aus einer einzelnen Variablen füllen möchten, die beispielsweise eine Zeichenfolge von Werten enthält:

'AA,BB,CC'

Bei diesem Ansatz können Schwierigkeiten auftreten. Hier ist eine Lösung:

Anstatt zu versuchen, die Zeichenfolge direkt an die IN-Klausel zu übergeben, übergeben Sie sie als Parameterwert im folgenden Format:

'AA,BB,CC'

Verwenden Sie die Funktion FIND_IN_SET, um festzustellen, ob Jeder Produkttypwert ist im Eingabeparameter vorhanden:

SELECT product_id, product_price
FROM product
WHERE FIND_IN_SET(product_type, param);

In dieser modifizierten Anweisung stellt param den Eingabeparameter dar, der die Wertezeichenfolge enthält.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eine Wertefolge an eine IN-Klausel in einer gespeicherten Prozedur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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