Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แก้ไขข้อผิดพลาดทุกครั้งที่มีการส่งคืนหลายแถวใน MySQL Benchmark หรือไม่


คุณจะได้รับข้อผิดพลาดทุกครั้งที่คุณส่งคืนหลายแถวในเกณฑ์มาตรฐาน ส่งคืนค่าสเกลาร์หรือแถวเดียวแทนหลายแถว ไวยากรณ์มีดังนี้ −

เลือก yourColumnName จาก yourTableName โดยที่เงื่อนไขของคุณ

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง UserDemo -> ( -> UserId int, -> UserName varchar(20), -> RegisteredCourse varchar(10) -> );Query OK, 0 แถวได้รับผลกระทบ (0.67 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า UserDemo (1,'John','Java');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงในค่า UserDemo (2,'Larry','C');Query ตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงในค่า UserDemo (3,'Carol','C++'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า UserDemo (4,'Mike', 'C#');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก UserDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+----------+-----------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | RegisteredCourse |+-------------+----------+-------------------+| 1 | จอห์น | ชวา || 2 | แลร์รี่ | ค || 3 | แครอล | C++ || 4 | ไมค์ | C# |+-------+----------+-----------------+4 แถวในชุด (0.00 วินาที)

ข้อผิดพลาดการวัดประสิทธิภาพของคุณมีดังนี้ -

mysql> เลือกเกณฑ์มาตรฐาน (1000,(เลือก RegisteredCourse จาก UserDemo));ข้อผิดพลาด 1242 (21000):แบบสอบถามย่อยส่งคืนมากกว่า 1 แถว

เนื่องจากข้อความค้นหาย่อยส่งคืนมากกว่าหนึ่งแถว ดังนั้น คุณต้องส่งคืนแถวเดียว แบบสอบถามมีดังนี้ −

mysql> เลือก RegisteredCourse จาก UserDemo โดยที่ UserId=1;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------------+| หลักสูตรที่ลงทะเบียน |+--------------------------------+| Java |+-----------------+1 แถวในชุด (0.00 วินาที)