Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. นับจำนวนแถวในตาราง MySQL อย่างง่ายด้วย COUNT(*)

    วิธีที่ง่ายที่สุด: COUNT(*) SELECT COUNT(*) FROM table_name; คืนค่าจำนวนแถวทั้งหมด (รวม NULL rows) ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (1.00 sec) 2. เพิ่มข้อมูล 4 แถว INSERT INTO DemoTable1575 VALUES(Chris), (Bob), (Adam), (Robert); Query OK, 4 rows affected (...) 3. น

  2. INSERT INTO SELECT ... UNION ALL: Select และ Insert หลายตารางใน Query เดียว MySQL

    สถานการณ์ ต้องการ Select ข้อมูลจากตารางหนึ่ง แล้ว Insert เข้าไปในอีกตารางหนึ่ง หลายครั้ง (หลายชุดค่า) ในคำสั่งเดียว วิธีแก้: INSERT INTO ... SELECT ... UNION ALL SELECT ... ตัวอย่างการใช้งาน 1. สร้างตารางปลายทาง (DemoTable1) ); Query OK, 0 rows affected (0.67 sec) 2. สร้างตารางต้นทาง (DemoTable

  3. เลือก 3 แถวล่าสุดแล้วเรียง Ascending ใน MySQL

    สถานการณ์ ต้องการ 3 แถวที่เพิ่มล่าสุด (Id สูงสุด 3 ค่า) แต่แสดงผลเรียงจากน้อยไปมาก (Ascending) วิธีแก้: Subquery + ORDER BY DESC LIMIT + Outer ORDER BY ASC SELECT * FROM ( SELECT * FROM table_name ORDER BY id_column DESC LIMIT 3 ) AS alias ORDER BY id_column ASC; ตัวอย่างการใช้งาน 1. สร้างตาร

  4. รับรองความ Unique ของแถวด้วย UNIQUE Constraint ใน MySQL

    สถานการณ์ ต้องการให้ชุดคอลัมน์ (id, Name, Age) ไม่มีค่าซ้ำกันในตาราง วิธีแก้: ใช้ UNIQUE Constraint / Index ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.73 sec) 2. เพิ่ม UNIQUE Constraint (Composite) ALTER TABLE DemoTable1580 ADD UNIQUE INDEX(id, Name, Age); Query OK, 0 rows

  5. Query TINYINT Column: ค่าที่ไม่ใช่ 1 หรือเป็น NULL ใน MySQL

    สถานการณ์ คอลัมน์ isMarried TINYINT เก็บค่า: 1 (Married), 0 (Single), NULL (Unknown) ต้องการดึงแถวที่ ไม่ใช่ 1 (คือ 0 หรือ NULL) วิธีแก้: ใช้ <> 1 OR IS NULL WHERE isMarried <> 1 OR isMarried IS NULL ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.83 sec) 2. เพิ่มข้อมูล INSERT

  6. หาค่าที่สองสูงสุด (Second Max) ใน MySQL ด้วย LIMIT OFFSET

    วิธีง่ายที่สุด: ORDER BY DESC LIMIT 1 OFFSET 1 เรียงจากมากไปน้อย ข้าม 1 แถวแรก (Max) แล้ว取 1 แถวถัดไป ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.92 sec) 2. เพิ่มข้อมูล INSERT INTO DemoTable VALUES(1), (2), (4), (204), (5); Query OK, 5 rows affected (...) 3. แสดงข้อมูลทั้งห

  7. จัดเรียงแบบ Wrap-around: ค่ามากกว่า 10 เรียงน้อยไปมาก ค่าน้อยกว่า 10 เรียงมากไปน้อย ใน MySQL

    สถานการณ์ ต้องการจัดเรียงตัวเลขโดย: ค่ามากกว่า 10 เรียงจากน้อยไปมาก (ASC) แล้วค่าต่ำกว่าหรือเท่ากับ 10 เรียงจากมากไปน้อย (DESC) - เรียกว่า Wrap Around วิธีแก้: ใช้ Boolean Expression ใน ORDER BY 10 DESC, Value ASC 10 คืนค่า 1 (True) หรือ 0 (False) DESC ทำให้ True (1) อยู่บน, False (0) อ

  8. แสดงข้อความกำหนดเองแทนคอลัมน์ว่างด้วย IF() ใน MySQL

    สถานการณ์ คอลัมน์ FirstName มีค่าว่าง () ต้องการแสดง Not Applicable แทนค่าว่าง วิธีแก้: ใช้ IF() Function IF(condition, true_value, false_value) - เรียบง่ายกว่า CASE WHEN สำหรับเงื่อนไข 2 ทางเลือก ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.77 sec) 2. เพิ่มข้อมูล (มีค่าว่าง)

  9. จัดเรียง IP Address ให้ถูกต้องด้วย INET_ATON() ใน MySQL

    ปัญหา IP Address เก็บเป็น VARCHAR จัดเรียงแบบ String จะได้ลำดับผิด: 192.168.110.78 192.168.110.87 192.168.110.75 (String Sort: 75, 78, 87 แต่ String จริง: 192.168.110.75, 192.168.110.78, 192.168.110.87) วิธีแก้: ใช้ INET_ATON() INET_ATON(192.168.110.75) แปลง IPv4 เป็น Integer (32-bit) จัดเรียงตัวเ

  10. ใช้ CASE WHEN แสดงข้อความกำหนดเองสำหรับค่าว่างใน MySQL

    สถานการณ์ คอลัมน์ Name มีค่าว่าง (Empty String ) ต้องการแสดงข้อความกำหนดเอง (เช่น Carol Taylor) แทนค่าว่าง วิธีแก้: ใช้ CASE WHEN + TRIM + IFNULL ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.62 sec) 2. เพิ่มข้อมูล (มีค่าว่าง) INSERT INTO DemoTable VALUES(); -- Empty Str

  11. ดึง 30 แถวล่าสุดใน MySQL ด้วย ORDER BY DESC LIMIT

    สถานการณ์ ต้องการดึงข้อมูล 30 แถวที่เพิ่มเข้ามาล่าสุด (Latest 30 rows) จากตารางที่มี Auto Increment ID วิธีแก้: ORDER BY ... DESC LIMIT 30 SELECT * FROM table_name ORDER BY id_column DESC LIMIT 30; ตัวอย่างการใช้งาน 1. สร้างตารางพร้อม Auto Increment ); Query OK, 0 rows affected (0.82 sec) 2. เพ

  12. หาจำนวนแถวรวมทุกตารางข้าม Database ด้วย INFORMATION_SCHEMA ใน MySQL

    สถานการณ์ มีตารางชื่อเดียวกัน (DemoTable1568) อยู่ใน Database หลายตัว (web, sample) ต้องการหาจำนวนแถวรวมทั้งหมด วิธีแก้: Query INFORMATION_SCHEMA.TABLES ใช้ SUM(TABLE_ROWS) กรองด้วย TABLE_NAME และ TABLE_SCHEMA ตัวอย่างการใช้งาน 1. สร้างตารางใน Database web INSERT INTO DemoTable1568 VALUES(Chris)

  13. อัปเดตค่าเฉพาะแถวและคอลัมน์ที่กำหนดใน MySQL

    สถานการณ์ ต้องการเปลี่ยนค่า StudentId ของแถวที่ StudentName = Carol Taylor จาก David_321 เป็น Carol_321 วิธีแก้: ใช้ UPDATE ... WHERE ระบุเงื่อนไขใน WHERE Clause เพื่อระบุแถวเป้าหมาย และ SET คอลัมน์ที่ต้องการเปลี่ยน ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (3.05 sec) 2. เพิ่

  14. คำนวณความต่างเวลาใน MySQL ด้วย INTERVAL และ NOW()

    สถานการณ์ มีตารางเก็บ ArrivalTime (DATETIME) ต้องการหาแถวที่ ArrivalTime อยู่ในช่วง 5 ชั่วโมงย้อนหลังจากเวลาปัจจุบัน วิธีแก้: ใช้ Date Arithmetic กับ INTERVAL MySQL รองรับการคำนวณ Date/Time โดยตรง: NOW() - INTERVAL 5 HOUR ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.87 sec) 2

  15. ใช้ Backticks จัดการ Table Name ที่เป็น Reserved Word (order) ใน MySQL

    ปัญหา ORDER เป็น Reserved Word ใน MySQL (ใช้ใน ORDER BY) ไม่สามารถใช้เป็น Table/Column Name ได้โดยตรง วิธีแก้: ใช้ Backticks (`) ห่อชื่อ Identifier (Table, Column, Database) ด้วย Backticks เพื่อบอก MySQL ว่าเป็น Identifier ไม่ใช่ Keyword ตัวอย่างการใช้งาน 1. สร้างตารางชื่อ order ); Query OK, 0 r

  16. ลบข้อมูลซ้ำเพียง 1 แถวด้วย DELETE ... LIMIT ใน MySQL

    สถานการณ์ ตารางมีข้อมูลซ้ำหลายแถว (เช่น Amount = 50 ซ้ำ 3 ครั้ง) ต้องการลบแค่ 1 แถว ไม่ใช่ลบทั้งหมด วิธีแก้: ใช้ DELETE ... LIMIT 1 DELETE FROM table WHERE condition LIMIT 1; จำกัดการลบไม่เกิน 1 แถว ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (1.38 sec) 2. เพิ่มข้อมูล (50 ซ้ำ 3

  17. แสดงเฉพาะข้อมูลซ้ำที่ต้องการด้วย LIKE ใน MySQL

    สถานการณ์ ตารางมีข้อมูลซ้ำหลายค่า ต้องการแสดงเฉพาะข้อมูลซ้ำของค่าเฉพาะ (เช่น John ทั้งหมด) ไม่ใช่ข้อมูลซ้ำทั้งหมด วิธีแก้: ใช้ WHERE ... LIKE กรองด้วย WHERE column LIKE value (Exact match) หรือ WHERE column LIKE %value% (Partial match) ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected

  18. เพิ่มคอลัมน์ Auto Increment เริ่มต้นที่กำหนดเองใน MySQL

    สถานการณ์ มีตารางที่สร้างแล้ว (ไม่มี Auto Increment Column) ต้องการเพิ่มคอลัมน์ ID ใหม่ที่ Auto Increment เริ่มจากค่าที่กำหนด (เช่น 1000) วิธีแก้: ใช้ ALTER TABLE ADD COLUMN + AUTO_INCREMENT ตัวอย่างการใช้งาน 1. สร้างตารางเดิม (ไม่มี ID) ); Query OK, 0 rows affected (0.63 sec) 2. เพิ่มข้อมูล I

  19. หาค่าคอลัมน์ที่สอดคล้องกับ MAX() ของอีกคอลัมน์หนึ่งใน MySQL

    สถานการณ์ ต้องการหา ProductId ที่มี ProductAmount สูงสุด (MAX) ไม่ใช่แค่ค่า MAX เท่านั้น วิธีแก้: ใช้ Subquery Subquery หา MAX Value ก่อน แล้วค่อย Filter ตารางหลัก ตัวอย่างการใช้งาน 1. สร้างตาราง ); Query OK, 0 rows affected (0.78 sec) 2. เพิ่มข้อมูล INSERT INTO DemoTable VALUES(2010, 8450); Q

  20. รวมคอลัมน์จากตารางต่างกันด้วย CONCAT และ JOIN ใน MySQL

    สถานการณ์ มีข้อมูล FirstName ในตารางหนึ่ง และ LastName ในอีกตาราง ต้องการรวมเป็น Full Name ใน Query เดียว วิธีแก้: ใช้ CONCAT() ร่วมกับ JOIN CONCAT(str1, str2, ...) รวมสตริงหลายตัวเป็นสตริงเดียว ตัวอย่างการใช้งาน 1. สร้างตารางแรก (FirstName) ); Query OK, 0 rows affected (0.90 sec) 2. เพิ่มข้อมู

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:33/229  20-คอมพิวเตอร์/Page Goto:1 27 28 29 30 31 32 33 34 35 36 37 38 39