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)
-
MySQLの行が一意であることを確認するにはどうすればよいですか?
MySQLの行が一意であることを確認するには、UNIQUE制約を使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1580 -> ( -> id int, -> Name varchar(20), -> Age int -> ); Query OK, 0 rows affected (0.73 sec) これは、MySQL行が一意であることを確認するための一意の制約
-
行から特定の行を取得するための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