Maison >base de données >tutoriel mysql >Comment puis-je utiliser des variables avec la clause LIMIT de MySQL ?
Dans MySQL, l'utilisation de variables dans les clauses LIMIT peut présenter un défi lorsque vous travaillez avec des procédures stockées impliquant des paramètres d'entrée entiers comme 'my_size .' L'implémentation native ne prend pas directement en charge cette fonctionnalité. Cependant, il existe plusieurs moyens de contourner cette limitation.
Si des versions de MySQL antérieures à 5.5.6 sont utilisées, ou si des procédures stockées ne sont pas souhaitées, une sous-requête avec un WHERE La clause et ROWNUM peuvent constituer une solution efficace.
SET @limit = 10; SELECT * FROM ( SELECT instances.*, @rownum := @rownum + 1 AS rank FROM instances, (SELECT @rownum := 0) r ) d WHERE rank < @limit;
Une autre approche consiste à construire la requête de manière dynamique en utilisant la concaténation de chaînes, en attribuant le résultat à une variable, puis en exécutant la requête préparée.
SET @query = 'SELECT * FROM some_table LIMIT ' || my_size; PREPARE stmt FROM @query; EXECUTE stmt;
Alternativement, les instructions préparées offrent une méthode pour transmettre des paramètres aux instructions SQL dynamiques, y compris la clause LIMIT.
SET @limit = 10; PREPARE stmt FROM 'SELECT * FROM some_table LIMIT ?'; SET @param = @limit; EXECUTE stmt USING @param;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!