MySQLを使用してテーブルからランダムな行をフェッチします
このために、PREPAREステートメントを使用できます。まずテーブルを作成しましょう-
mysql> create table DemoTable( FirstName varchar(100), CountryName varchar(100) ); Query OK, 0 rows affected (0.53 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('Adam','US'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('Chris','AUS'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('Robert','UK'); Query OK, 1 row affected (0.32 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | Adam | US | | Chris | AUS | | Robert | UK | +-----------+-------------+ 3 rows in set (0.00 sec)
以下は、単一のクエリでランダムな行をフェッチするためのクエリです-
mysql> set @value := ROUND((select count(*) from DemoTable) * rand()); Query OK, 0 rows affected (0.00 sec) mysql> set @query := CONCAT('select *from DemoTable LIMIT ', @value , ', 1'); Query OK, 0 rows affected (0.00 sec) mysql> prepare myStatement from @query ; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> execute myStatement; +-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | Chris | AUS | +-----------+-------------+ 1 row in set (0.00 sec) mysql> deallocate prepare myStatement; Query OK, 0 rows affected (0.00 sec)
-
MySQLで1つのテーブルから別のテーブルに行をコピーするにはどうすればよいですか?
これには、INSERTINTOSELECTステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1879 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1879 values(101,'Chris
-
単一のクエリでIN()を使用してMySQLテーブルからレコードを削除する
テーブルを作成しましょう- mysql> create table DemoTable1922 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1922(StudentNa