Maison  >  Article  >  base de données  >  Comment paramétrer la clause LIMIT dans les procédures stockées MySQL ?

Comment paramétrer la clause LIMIT dans les procédures stockées MySQL ?

DDD
DDDoriginal
2024-11-03 05:54:03980parcourir

How to Parameterize the LIMIT Clause in MySQL Stored Procedures?

Paramétrage de la clause LIMIT dans les procédures stockées MySQL

Question :

En créant une classe de pagination, vous souhaitez transmettre deux paramètres à la procédure stockée MySQL Clause LIMITE. Cependant, tenter d'utiliser des paramètres INT et une structure de requête comme celle-ci génère une erreur :

<code class="sql">SELECT *
FROM
`MyTable`
LIMIT
MyFirstParamInt, MySecondParamInt</code>

Existe-t-il une approche alternative pour réaliser ce paramétrage, ou la construction et l'exécution de requêtes dynamiques sont-elles la seule solution ?

Réponse :

Avant MySQL 5.5.6 :

Avant la version 5.5.6, le paramétrage de la clause LIMIT n'était pas pris en charge dans les procédures stockées MySQL . En tant que tel, créer la requête de manière dynamique et l'exécuter était la seule méthode réalisable.

MySQL 5.5.6 et versions ultérieures :

À partir de MySQL 5.5.6, il est devenu Il est possible de paramétrer les clauses LIMIT et OFFSET à l'aide des paramètres INTEGER. Pour ce faire, transmettez simplement les paramètres de la procédure stockée directement à LIMIT et OFFSET, comme indiqué ci-dessous :

<code class="sql">SELECT *
FROM
`MyTable`
LIMIT ? OFFSET ?</code>

Dans cet exemple, ? représente les espaces réservés pour les deux paramètres INTEGER que vous avez l'intention de transmettre.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn