MySQLのテーブルから(条件付きで)最後のレコードを削除するにはどうすればよいですか?
テーブルから(条件付きで)最後のレコードを削除するには、LIMITを指定したORDERBYDESCを使用する必要があります
1.構文は次のとおりです。
DELETE FROM yourTableName WHERE yourColumnName1=yourValue ORDER BY yourColumnName2 DESC LIMIT 1;
上記の構文は、テーブルから最後のレコード(条件付き)を削除します。列を降順で並べ替え、削除する最初の要素を選択します。
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table UserLoginTable -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserId int, -> UserLoginDateTime datetime, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.94 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-27 13:47:20'); Query OK, 1 row affected (0.19 sec) mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2018-11-28 12:30:12'); Query OK, 1 row affected (0.16 sec) mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-26 11:30:30'); Query OK, 1 row affected (0.20 sec) mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2015-03-11 15:23:55'); Query OK, 1 row affected (0.21 sec) mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-03-21 16:01:56'); Query OK, 1 row affected (0.23 sec)
これで、selectステートメントを使用してテーブルのすべてのレコードを表示できます。クエリは次のとおりです。
mysql> select *from UserLoginTable;
出力は次のとおりです。
+----+--------+---------------------+ | Id | UserId | UserLoginDateTime | +----+--------+---------------------+ | 1 | 2 | 2019-01-27 13:47:20 | | 2 | 1 | 2018-11-28 12:30:12 | | 3 | 2 | 2019-01-26 11:30:30 | | 4 | 1 | 2015-03-11 15:23:55 | | 5 | 2 | 2019-03-21 16:01:56 | +----+--------+---------------------+ 5 rows in set (0.00 sec)
テーブルから(条件付きで)最後のレコードを削除するクエリは次のとおりです。
mysql> delete from UserLoginTable where UserId=2 ORDER BY UserLoginDateTime DESC LIMIT 1; Query OK, 1 row affected (0.16 sec)
selectステートメントを使用してテーブルレコードをもう一度確認します。クエリは次のとおりです。
mysql> select *from UserLoginTable;
出力は次のとおりです。
+----+--------+---------------------+ | Id | UserId | UserLoginDateTime | +----+--------+---------------------+ | 1 | 2 | 2019-01-27 13:47:20 | | 2 | 1 | 2018-11-28 12:30:12 | | 3 | 2 | 2019-01-26 11:30:30 | | 4 | 1 | 2015-03-11 15:23:55 | +----+--------+---------------------+ 4 rows in set (0.00 sec)
最後のレコードがUserId2のテーブルから削除されるようになりました。
-
MySQLでテーブルの名前を変更するにはどうすればよいですか?
テーブルの名前を変更するには、alterコマンドとrenameコマンドを使用できます。これらは、次の手順を使用して示されます- まず、createコマンドを使用してテーブルを作成します。これは次のように与えられます- ); Query OK, 0 rows affected (0.49 sec) テーブル名を変更するための構文は次のとおりです-
-
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),(