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

ฉันจะนับระเบียนที่ไม่ซ้ำจากคอลัมน์ในฐานข้อมูล MySQL ได้อย่างไร


สำหรับสิ่งนี้ ให้ใช้ฟังก์ชันการรวม count(*) เพื่อนับเป็น GROUP BY เพื่อจัดกลุ่ม ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable (ชื่อผู้ใช้ varchar (100) ข้อความ UserPostMessage); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Chris', 'Hi'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า DemoTable ('David', 'Hello'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 'Awesome'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 'Amazing'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable ('David', 'Nice Place'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 'Amazing'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

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

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

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

<ก่อนหน้า>+----------+-----------------+| ชื่อผู้ใช้ | UserPostMessage |+----------+-----------------+| คริส | สวัสดี || เดวิด | สวัสดี || คริส | สุดยอด || คริส | น่าทึ่ง || เดวิด | Nice Place || คริส | น่าทึ่ง |+----------+-----------------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อนับระเบียนที่ไม่ซ้ำจากคอลัมน์ในฐานข้อมูล MySQL ของฉัน -

mysql> เลือกชื่อผู้ใช้นับ (DISTINCT UserPostMessage) เป็น NumberOfMessagesPostByUser จากกลุ่ม DemoTable ตามชื่อผู้ใช้

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

<ก่อนหน้า>+----------+----------------------------+| ชื่อผู้ใช้ | NumberOfMessagesPostByUser |+----------+-----------------------------+| คริส | 3 || เดวิด | 2 |+----------+---------------------------+2 แถวในชุด (0.00 วินาที )