當 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)

使用 insert 命令在表中插入一些記錄。查詢如下所示 -

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)

更新於:2019-07-30

202 次檢視

開啟您的 職業

完成課程後獲取認證

開始
廣告
© . All rights reserved.