MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL-1、2、3、4、5から1、3、5に削除された行を含む自動インクリメントフィールドを修正するにはどうすればよいですか?今、私たちはそれを1,2,3にしたい


まずテーブルを作成しましょう-

mysql> create table DemoTable1955
   (
   UserId int NOT NULL AUTO_INCREMENT
   ,
   PRIMARY KEY(UserId)
   );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1955;

これにより、次の出力が生成されます-

+--------+
| UserId |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
|      5 |
+--------+
5 rows in set (0.00 sec)

これがテーブルから行を削除するためのクエリです-

mysql> delete from DemoTable1955 where UserId  IN(2,4);
Query OK, 2 rows affected (0.00 sec)

次に、テーブルレコードを確認します-

mysql> select * from DemoTable1955;

これにより、次の出力が生成されます-

+--------+
| UserId |
+--------+
|      1 |
|      3 |
|      5 |
+--------+
3 rows in set (0.00 sec)

これは、行を削除した自動インクリメントフィールド(1,2,3,4,5から1,3,5)を修正するためのクエリです。以下のクエリは、1から始まる列を1,2,3-

のようにします。
mysql> update DemoTable1955
   set UserId = (@increment_value := @increment_value+ 1)
   order by UserId;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3  Changed: 2 Warnings: 0

テーブルレコードをもう一度確認しましょう-

mysql> select * from DemoTable1955;

これにより、次の出力が生成されます-

+--------+
| UserId |
+--------+
|      1 |
|      2 |
|      3 |
+--------+
3 rows in set (0.00 sec)

  1. MySQLから最後の10行を選択するにはどうすればよいですか?

    MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(

  2. MySQLを使用して、さまざまな行から単一のフィールドにリストを返します

    これには、GROUP_CONCAT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2024    -> (    -> SubjectName varchar(20),    -> StudentName varchar(20)    -> ); Query OK, 0 rows affected (0.62 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in