Maison > Article > base de données > Quelques utilisations avancées de la limite dans MySQL
Habituellement, lorsque nous utilisons des instructions SQL, nous utilisons des utilisations relativement simples Ci-dessous, j'utiliserai quelques exemples pour parler de certaines méthodes d'utilisation avancées de limite dans Mysql.
efficacité de la limite mysql :
sélectionnez `id`,`title`,`descript`,`created` from myvbga_table which click = xxx limit offset, limit; //Résumé : s'il n'y a pas de champ blob/texte et que l'enregistrement sur une seule ligne est relativement petit, vous pouvez définir une limite plus grande, ce qui accélérera le processus.
la valeur de décalage limite est relativement petite :
sélectionnez `id`,`title`,`descript`,`created` dans vbga_table limit 10,10 //multiple fois Exécuté, le temps reste entre 0,0004 et 0,0005
Sélectionnez `id`,`title`,`descript`,`created` Depuis vbga_table Où cliquez >=(Sélectionnez cliquez Depuis vbga_table Commande Par limite de clics 10,1 ) limite 10 //Plusieurs exécutions, le temps reste entre 0,0005 et 0,0006, principalement 0,0006
la valeur de décalage limite est relativement grande :
sélectionnez `id`, `title `,`describe`,`created` à partir de la limite de vbga_table 10000,10 //Exécuter plusieurs fois, le temps reste autour de 0,0187
Sélectionnez `id`,`title`,`descript`,`created` Depuis vbga_table Où cliquez >=(Sélectionnez clic Depuis vbga_table Commande par clic limite 10000,1) limite 10 //Exécutez plusieurs fois, le temps reste à environ 0,0061, seulement 1/3 de l'ancien. On peut s’attendre à ce que plus le décalage est important, meilleur est ce dernier.
Utilisation limite de MySQL :
La clause LIMIT peut être utilisée pour forcer l'instruction SELECT à renvoyer le nombre d'enregistrements spécifié
SELECT `id`, ` title`,`descript`,`created` FROM vbga_table LIMIT [offset,] lignes | lignes OFFSET offset
mysql> SELECT `id`,`title`,`descript`,`created` FROM vbga_table LIMIT 5 ,10; //Récupérer les lignes d'enregistrement 6 à 15 //Afin de récupérer toutes les lignes d'enregistrement d'un certain décalage jusqu'à la fin du jeu d'enregistrements, vous pouvez spécifier le deuxième paramètre comme -1 :
mysql> ; SELECT `id`,`title`,`describe`,`created` FROM vbga_table LIMIT 95,-1; //Récupère les lignes d'enregistrement 96-dernières //Si un seul paramètre est donné, cela signifie renvoyer le nombre maximum de. lignes d'enregistrement :
mysql> SELECT `id`,`title`,`describe`,`created` FROM vbga_table LIMIT 5; //Récupère les 5 premières lignes d'enregistrement//En d'autres termes, LIMIT n est équivalent à LIMITE 0 ,n.
Exemple d'utilisation de sous-requête de limite mysql :
sélectionnez `id`,`title`,`descriptible`,`created` depuis vbga_table où id dans (sélectionnez t. id from (select `id`,`title`,`describe`,`created` from vbga_table limit 10)as t)
utilisation du décalage de limite mysql :
SELECT password FROM `zjoe_table` WHEREadvertrid='59' order by password LIMIT 2 OFFSET 1; //Par exemple, dans ce SQL, la limite est suivie de 2 éléments de données, et le décalage est suivi de la lecture à partir du 1er élément
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~
SELECT `keyword` FROM `zjoe_table` WHEREadvertrid='59' ORDER BY keyword LIMIT 2,1 //Et ceci; SQL, après la limite, consiste à commencer la lecture à partir du 2ème élément et à lire 1 élément d'information.
Utilisation de la variable limite dans la procédure stockée MySQL
CREATE PROCEDURE Getble_table(_id int,_limit int)
BEGIN
PREPARE s1 FROM 'SELECT `id`,`title`,`describe`,`created` FROM ble_table WHERE Cityid=? ORDER BY sendtime DESC LIMIT ?';
set @a=_id;
set @b=_limit;
EXECUTE s1 USING @a,@b;
DEALLOCATE PREPARE s1;
END;
Ce qui précède est ce que J'ai résumé une utilisation avancée de la limite dans Mysql, j'espère que cela sera utile à tout le monde à l'avenir.
Articles connexes :
Comment lire des données via PHP MySQL
PHP lié à la connexion à MySQL Knowledge et ses opérations
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!