In MySQL kann die Verwendung von Variablen in LIMIT-Klauseln eine Herausforderung darstellen, wenn Sie mit gespeicherten Prozeduren arbeiten, die ganzzahlige Eingabeparameter wie „my_size“ enthalten .' Die native Implementierung unterstützt diese Funktionalität nicht direkt. Es gibt jedoch mehrere Möglichkeiten, diese Einschränkung zu umgehen.
Wenn MySQL-Versionen vor 5.5.6 verwendet werden oder gespeicherte Prozeduren nicht erwünscht sind, ist eine Unterabfrage mit einem WHERE Klausel und ROWNUM können als effektive Lösung dienen.
SET @limit = 10; SELECT * FROM ( SELECT instances.*, @rownum := @rownum + 1 AS rank FROM instances, (SELECT @rownum := 0) r ) d WHERE rank < @limit;
Ein anderer Ansatz besteht darin, die Abfrage dynamisch mithilfe der Zeichenfolgenverkettung zu erstellen, das Ergebnis einer Variablen zuzuweisen und dann die vorbereitete Abfrage auszuführen.
SET @query = 'SELECT * FROM some_table LIMIT ' || my_size; PREPARE stmt FROM @query; EXECUTE stmt;
Alternativ bieten vorbereitete Anweisungen eine Methode zur Übergabe von Parametern an dynamische SQL-Anweisungen, einschließlich der LIMIT-Klausel.
SET @limit = 10; PREPARE stmt FROM 'SELECT * FROM some_table LIMIT ?'; SET @param = @limit; EXECUTE stmt USING @param;
Das obige ist der detaillierte Inhalt vonWie kann ich Variablen mit der LIMIT-Klausel von MySQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!