Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. ใช้ ORDER BY NULL ใน MySQL

    ใช่ สามารถใช้ได้ แต่ใน MySQL 8.0+ ไม่จำเป็นแล้ว ข้อมูลพื้นฐาน ก่อน MySQL 5.7: GROUP BY ทำ Implicit Sorting → ใช้ ORDER BY NULL ปิดการเรียงเพื่อประสิทธิภาพ MySQL 8.0+: GROUP BY ไม่ทำ Implicit Sorting แล้ว → ORDER BY NULL ไม่มีผล / ไม่จำเป็น ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO Demo

  2. เรียงลำดับใน MySQL IN() ตามลำดับที่กำหนด แบบ Descending

    ใช้ FIELD() ร่วม ORDER BY ... DESC เพื่อเรียงตามลำดับที่ระบุใน IN() แบบ Descending ตัวอย่างการใช้งาน 1. สร้างตารางตัวเลข 10-50 INSERT INTO DemoTable VALUES (10), (20), (30), (40), (50); 2. เรียงตามลำดับใน IN() แบบ DESC ORDER BY FIELD(Number, 40,50,20,30,10) DESC; ผลลัพธ์ +--------+ | Number | +---

  3. ตัดทิ้ง 3 ตัวอักษรสุดท้ายของคอลัมน์ใน MySQL

    ใช้ REVERSE(SUBSTR(REVERSE(column), 4)) เพื่อตัด 3 ตัวท้าย (เก็บส่วนหน้า) ตัวอย่างการใช้งาน 1. สร้างตารางรหัสนักเรียนมี -XXX ท้าย INSERT INTO DemoTable VALUES (STU-090), (STU-123), (STU-678); 2. ตัด 3 ตัวท้าย (090, 123, 678) SELECT REVERSE(SUBSTR(REVERSE(StudentId), 4)) FROM DemoTable; ผลลัพธ์ +--

  4. เปรียบเทียบสองคอลัมน์ใน MySQL Query เดียว ได้หนึ่งแถว

    ใช้ ORDER BY col1 DESC, col2 DESC LIMIT 1 หาแถวที่มีค่าสูงสุดตามลำดับความสำคัญ ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (60, 249), (59, 250); 2. เรียง Num2 DESC ก่อน แล้ว Num1 DESC แล้ว LIMIT 1 ORDER BY Num2 DESC, Num1 DESC LIMIT 1; ผลลัพธ์ +------+------+ | Num1 | Num

  5. SELECT DISTINCT เรียงตาม ID ใน MySQL

    ใช้ GROUP BY ร่วม ORDER BY MAX(id) เพื่อ DISTINCT แล้วเรียงตาม ID สูงสุดของแต่ละกลุ่ม ตัวอย่างการใช้งาน 1. สร้างตารางข้อมูลซ้ำ INSERT INTO DemoTable VALUES (10,John), (10,John), (20,Sam), (20,Sam), (30,David), (30,David); 2. DISTINCT เรียง ID มากไปน้อย (Top 2) LIMIT 2; ผลลัพธ์ +-------+ | Name |

  6. นับจำนวนทุกค่าในคอลัมน์ MySQL (Frequency Count)

    ใช้ GROUP BY ร่วม COUNT() เพื่อนับความถี่ของแต่ละค่า ตัวอย่างการใช้งาน 1. สร้างตารางสินค้า INSERT INTO DemoTable VALUES (Product-1), (Product-2), (Product-3), (Product-3), (Product-2), (Product-4), (Product-5), (Product-1); 2. นับจำนวนแต่ละสินค้า FROM DemoTable GROUP BY ProductName; ผลลัพธ์ +---

  7. ค้นหาตัวเลขในคอลัมน์ VARCHAR ของ MySQL

    ใช้ CASE WHEN หรือการแปลงชนิดข้อมูล เพื่อค้นหาตัวเลขนำหน้าใน VARCHAR ตัวอย่างการใช้งาน 1. สร้างตารางอีเมลขึ้นต้นด้วยตัวเลข INSERT INTO DemoTable VALUES (9John@example.com), (3Carol@gmail.com); 2. ค้นหาที่ขึ้นต้นด้วย 9 FROM DemoTable; ผลลัพธ์ +---------------------+ | Result | +-------

  8. Query ข้อมูลตามปีใน MySQL

    ใช้ฟังก์ชัน YEAR(date_column) ดึงปี แล้วกรองใน WHERE ไวยากรณ์ SELECT * FROM yourTableName WHERE YEAR(yourColumnName) = yourYearValue; ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (Chris, 2019-01-21), (Robert, 2018-02-21), (David, 2016-04-01); 2. Query ปี 2016 SELECT * FRO

  9. ลบอักขระพิเศษออกจากคอลัมน์ใน MySQL

    ใช้ REPLACE(column, special_char, ) เพื่อลบอักขระพิเศษที่ทราบชัดเจน ตัวอย่าง: ลบ # ออกจากรหัสนักเรียน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (STU#123), (STU#567), (STU#98494); 2. ลบ # ทั้งหมด UPDATE DemoTable SET StudentId = REPLACE(StudentId, #, ); ผลลัพธ์ +-----------+ | StudentId |

  10. หาค่า AUTO_INCREMENT ถัดไปใน MySQL

    Query ตาราง information_schema.tables ดูค่า AUTO_INCREMENT ไวยากรณ์ SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = your_table AND table_schema = your_db; ตัวอย่างการใช้งาน 1. สร้างตารางและแทรก 3 แถว INSERT INTO DemoTable VALUES (), (), (); 2. ดูค่า Auto Increment ถัดไป SE

  11. อัปเดตหลายคอลัมน์ในคำสั่ง MySQL เดียว

    ใช้ UPDATE ... SET col1 = ..., col2 = ... อัปเดตหลายคอลัมน์พร้อมกันในคำสั่งเดียว ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable(StudentName, StudentCountryName) VALUES (John, US); 2. อัปเดต Name และ Country พร้อมกัน StudentCountryName = REPLACE(StudentCountryName, US, UK); ผลลั

  12. Query MySQL ด้วย Unicode Char Code

    ใช้ CHAR() แปลงรหัส Unicode (Code Point) เป็นตัวอักษร ตัวอย่างการใช้งาน 1. สร้างตารางเก็บรหัสตัวเลข INSERT INTO DemoTable VALUES (0x41), (0x30), (0x61); -- Hex: 65, 48, 97 2. แปลงเป็นตัวอักษร SELECT CHAR(Value) FROM DemoTable; ผลลัพธ์ +-------------+ | CHAR(Value) | +-------------+ | A

  13. หาจำนวนแถวในตาราง MySQL

    ใช้ information_schema.tables ดู TABLE_ROWS (ประมาณการสำหรับ InnoDB) หรือ COUNT(*) (แม่นยำ) วิธีที่ 1: information_schema (ประมาณการ, เร็ว) SELECT TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = your_db AND TABLE_NAME = your_table; วิธีที่ 2: COUNT(*) (แม่นยำ, ช้ากว่า) SELECT COUNT(*

  14. หาจำนวนครั้งที่ค่าปรากฏในคอลัมน์ภายใน Query เดียวใน MySQL

    ใช้ Subquery ใน SELECT เพื่อนับจำนวนครั้งของค่าในแต่ละแถว ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (20), (30), (20), (40), (30), (20); 2. Query นับ Occurrence ต่อแถว FROM DemoTable tbl; ผลลัพธ์ +-------+------------+ | Value | Occurrence | +-------+------------+ | 20

  15. สร้างและเติมค่าให้คอลัมน์ใหม่ในตาราง MySQL ที่มีอยู่แล้ว

    ใช้ ALTER TABLE ADD COLUMN ... GENERATED ALWAYS AS (expression) สร้าง Generated Column คำนวณอัตโนมัติ ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูลเดิม INSERT INTO DemoTable VALUES (10, 10), (20, 30); 2. เพิ่มคอลัมน์ Value3 = (Value1 = Value2) แบบ Boolean → 1/0 ALTER TABLE DemoTable ADD Value3 INT GENE

  16. ลบอักขระเฉพาะทั้งหมดออกจากคอลัมน์ใน MySQL

    ใช้ REPLACE(column, char_to_remove, ) เพื่อลบอักขระที่ต้องการทั้งหมด ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูลมี ^ ปน INSERT INTO DemoTable VALUES (Adam^^^), (^^^^^^^^Carol), (Robert^^^^^^); 2. ลบ ^ ทั้งหมด UPDATE DemoTable SET FirstName = REPLACE(FirstName, ^, ); ผลลัพธ์ +-----------+ | FirstName

  17. Query MySQL ด้วยเงื่อนไข Boolean 2 เงื่อนไข กรองวันที่ตามชั่วโมง

    ใช้ EXTRACT(HOUR FROM datetime) ดึงชั่วโมง แล้วกรองด้วย NOT BETWEEN ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (2019-01-10 10:45:10), (2019-02-12 20:50:00), (2019-02-12 16:10:19); 2. Query: ชั่วโมงไม่อยู่ระหว่าง 8-10 น. WHERE EXTRACT(HOUR FROM AdmissionDate) NOT BETWEEN

  18. ลบอักขระทั้งหมดยกเว้นตัวแรกใน MySQL

    ใช้ฟังก์ชัน LEFT(string, 1) เพื่อเก็บเฉพาะตัวอักษรตัวแรก ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล INSERT INTO DemoTable VALUES (Sam), (Mike), (David); 2. อัปเดตเก็บแค่ตัวแรก UPDATE DemoTable SET FirstName = LEFT(FirstName, 1); ผลลัพธ์ +-----------+ | FirstName | +-----------+ | S | | M

  19. สุ่ม 5 แถวจาก 20 แถวล่าสุดใน MySQL

    ใช้ Subquery: เรียงลำดับใหม่สุด 20 แถว ก่อน แล้วค่อยสุ่ม 5 แถวจากชุดนั้น ตัวอย่างการใช้งาน 1. สร้างตารางและข้อมูล 29 แถว CREATE TABLE DemoTable (ShippingDate DATETIME); -- INSERT 29 records from 2019-01-01 to 2019-05-18 2. Query: 20 แถวล่าสุด → สุ่ม 5 แถว ORDER BY RAND() LIMIT 5; ผลลัพธ์ตัวอย่าง (

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:90/229  20-คอมพิวเตอร์/Page Goto:1 84 85 86 87 88 89 90 91 92 93 94 95 96