Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khắc phục lỗi multiple rows returned trong MySQL BENCHMARK

Lỗi xảy ra khi BENCHMARK nhận subquery trả về nhiều hàng. Chỉ chấp nhận giá trị đơn (scalar) hoặc 1 hàng.

Cú pháp đúng:

SELECT yourColumnName FROM yourTableName WHERE yourCondition.

Demo: Bảng UserDemo 4 hàng. Subquery trả về 4 hàng RegisteredCourse gây lỗi:

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

Sửa: Thêm WHERE để trả về 1 hàng:

mysql> select RegisteredCourse from UserDemo where UserId=1;
+------------------+ | RegisteredCourse | +------------------+ | Java | +------------------+ 1 row in set (0.00 sec)