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

วิธีการใช้ MAX (แตกต่าง…) ใน MySQL และอะไรคือความแตกต่างโดยไม่ต้องใช้ DISTINCT


ให้เราดูไวยากรณ์แรกซึ่งใช้ DISTINCT ใน MAX() -

select max(DISTINCT yourColumnName) จาก yourTableName;

ไวยากรณ์ที่สองมีดังนี้ ไม่ได้ใช้ DISTINCT -

เลือก max( yourColumnName) จาก yourTableName;

หมายเหตุ − แบบสอบถามทั้งสองข้างต้นให้ผลลัพธ์เหมือนกันโดยมีหรือไม่มีคีย์เวิร์ด DISTINCT MySQL ภายในแปลงคำหลัก MAX(yourColumnName) เป็น DISTINCT

ให้เราดูตัวอย่างและสร้างตาราง -

mysql> สร้างตาราง DemoTable( Number int);Query OK, 0 แถวได้รับผลกระทบ (1.50 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable (80); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า DemoTable (88); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable ( 78); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable (88); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable (68); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.09 วินาที) mysql> แทรกลงในค่า DemoTable (88) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+---------+| เบอร์ |+-------+| 80 || 88 || 78 || 88 || 68 || 88 |+--------+6 แถวในชุด (0.00 วินาที)

กรณีที่ 1 − ต่อไปนี้เป็นแบบสอบถามที่จะใช้ MAX(DISTINCT..) -

mysql> เลือกสูงสุด (หมายเลข DISTINCT) จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------------------+| max(DISTINCT Number) |+----------------------+| 88 |+----------------------+1 แถวในชุด (0.00 วินาที)

กรณีที่ 2 − ต่อไปนี้เป็นแบบสอบถามที่จะใช้ MAX() โดยไม่มี DISTINCT -

mysql> เลือก max(Number) จาก DemoTable

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+| สูงสุด(จำนวน) |+-------------+| 88 |+-------------+1 แถวในชุด (0.07 วินาที)

ดังที่คุณเห็นด้านบน ทั้งคู่ให้ผลลัพธ์เหมือนกัน