Maison >base de données >tutoriel mysql >Comment interroger le dernier enregistrement dans MySQL

Comment interroger le dernier enregistrement dans MySQL

藏色散人
藏色散人original
2021-12-01 15:33:5321583parcourir

Comment interroger le dernier enregistrement dans MySQL : 1. Affichez la table et la structure de la table dans la base de données actuelle ; 2. Triez le champ ID dans l'ordre inverse en fonction de l'auto-incrémentation de l'ID et affichez la première ligne ; La fonction selon l'instruction d'insertion actuelle last_insert_id() peut vérifier le dernier enregistrement.

Comment interroger le dernier enregistrement dans MySQL

L'environnement d'exploitation de cet article : système Windows 7, mysql version 8.0, ordinateur Dell G3.

Comment interroger le dernier enregistrement dans MySQL ?

MySQL interroge le dernier enregistrement

1 Environnement et préparation des données

1. Afficher la table dans la base de données actuelle

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| my_insert1 |
| my_insert2 |
+----------------+

2. structure

mysql> show create table my_insert1\G;
*************************** 1. row ***************************
Table: my_insert1
Create Table: CREATE TABLE `my_insert1` (
`name` varchar(10) CHARACTER SET latin1 DEFAULT NULL,
`password` varchar(32) CHARACTER SET latin1 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

3 .Affichez la structure de la table my_insert2

mysql> show create table my_insert2\G;
*************************** 1. row ***************************
       Table: my_insert2
Create Table: CREATE TABLE `my_insert2` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(10) CHARACTER SET latin1 DEFAULT NULL,
  `password` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

4. Insérez des enregistrements dans les tables my_insert1 et my_insert2

mysql> insert into my_insert1(name,password) values ('黄飞鸿',password(123456)),('李小龙',password(123456));
 
mysql> insert into my_insert2(id,name,password) values (null,'黄飞鸿',password(123456)),(null,'李小龙',password(123456));

5 Affichez les enregistrements de la table

mysql> select * from my_insert1;
+-----------+----------------------------------+
| name      | password                         |
+-----------+----------------------------------+
| 黄飞鸿    | *6BB4837EB74329105EE4568DDA7DC67 |
| 李小龙    | *6BB4837EB74329105EE4568DDA7DC67 |
+-----------+----------------------------------+
 
mysql> select * from my_insert2;
+----+-----------+----------------------------------+
| id | name      | password                         |
+----+-----------+----------------------------------+
|  1 | 黄飞鸿    | *6BB4837EB74329105EE4568DDA7DC67 |
|  2 | 李小龙    | *6BB4837EB74329105EE4568DDA7DC67 |
|  3 | 李连杰    | *6BB4837EB74329105EE4568DDA7DC67 |
+----+-----------+----------------------------------+

2. Lorsqu'il n'y a pas de champ d'incrémentation automatique d'ID dans. la table et il y a une incrémentation automatique de l'ID, affichez le dernier enregistrement De la même manière

1 Depuis my_insert1, il n'y a pas d'incrémentation automatique de l'ID, vérifiez combien d'enregistrements il y a dans la table actuelle

mysql> select count(*) from my_insert1;
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)

2. enregistrement de la table actuelle

mysql> select * from my_insert1 limit 1,1;
+-----------+----------------------------------+
| name | password |
+-----------+----------------------------------+
| 李小龙 | *6BB4837EB74329105EE4568DDA7DC67 |
+-----------+----------------------------------+
1 row in set (0.00 sec)

3. En fonction de l'incrémentation automatique de l'ID, utilisez une sous-requête pour afficher la table. La valeur maximale du champ ID

mysql> select *   from my_insert2 where id=(select max(id) from my_insert2);
+----+-----------+----------------------------------+
| id | name      | password                         |
+----+-----------+----------------------------------+
|  3 | 李连杰    | *6BB4837EB74329105EE4568DDA7DC67 |
+----+-----------+----------------------------------+

4 Triez le champ ID dans l'ordre inverse en fonction de l'ID automatique. incrémentez et affichez la première ligne

mysql> select * from my_insert2 order by id desc limit 1;
+----+-----------+----------------------------------+
| id | name      | password                         |
+----+-----------+----------------------------------+
|  3 | 李连杰    | *6BB4837EB74329105EE4568DDA7DC67 |
+----+-----------+----------------------------------+

5. Vous pouvez utiliser la fonction last_insert_id() basée sur l'instruction d'insertion actuelle pour afficher le dernier enregistrement

mysql> insert into my_insert2(id,name,password) values(null,'霍元甲',password('123456'));
Query OK, 1 row affected, 1 warning (0.00 sec)
 
mysql> select * from my_insert2 where id=(select last_insert_id());
+----+-----------+----------------------------------+
| id | name      | password                         |
+----+-----------+----------------------------------+
|  4 | 霍元甲    | *6BB4837EB74329105EE4568DDA7DC67 |
+----+-----------+----------------------------------+
1 row in set (0.00 sec)

【Recommandations associées : tutoriel vidéo mysql

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