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

MySQLベンチマークで複数の行が返されるたびにエラーを解決しますか?


ベンチマークで複数の行を返すと、エラーが発生します。複数の行ではなく、スカラー値または単一の行を返します。構文は次のとおりです-

SELECT yourColumnName FROM yourTableName WHERE yourCondition.

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table UserDemo
   -> (
   -> UserId int,
   -> UserName varchar(20),
   -> RegisteredCourse varchar(10)
   -> );
Query OK, 0 rows affected (0.67 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into UserDemo values(1,'John','Java');
Query OK, 1 row affected (0.16 sec)
mysql> insert into UserDemo values(2,'Larry','C');
Query OK, 1 row affected (0.21 sec)
mysql> insert into UserDemo values(3,'Carol','C++');
Query OK, 1 row affected (0.11 sec)
mysql> insert into UserDemo values(4,'Mike','C#');
Query OK, 1 row affected (0.17 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from UserDemo;

以下は出力です-

+--------+----------+------------------+
| UserId | UserName | RegisteredCourse |
+--------+----------+------------------+
|      1 | John     | Java             |
|      2 | Larry    | C                |
|      3 | Carol    | C++              |
|      4 | Mike     | C#               |
+--------+----------+------------------+
4 rows in set (0.00 sec)

ベンチマークエラーは次のとおりです-

mysql> select benchmark(1000,(select RegisteredCourse from UserDemo));
ERROR 1242 (21000): Subquery returns more than 1 row

サブクエリは複数の行を返したため、単一の行を返す必要があります。クエリは次のとおりです-

mysql> select RegisteredCourse from UserDemo where UserId=1;

以下は出力です-

+------------------+
| RegisteredCourse |
+------------------+
| Java             |
+------------------+
1 row in set (0.00 sec)

  1. MySQLの行が一意であることを確認するにはどうすればよいですか?

    MySQLの行が一意であることを確認するには、UNIQUE制約を使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1580    -> (    -> id int,    -> Name varchar(20),    -> Age int    -> ); Query OK, 0 rows affected (0.73 sec) これは、MySQL行が一意であることを確認するための一意の制約

  2. 行から特定の行を取得するためのMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable1972    (    Section char(1),    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1972 values('D','Chris'); Quer