Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. ตัวอย่าง SQL Query: COUNT() และ GROUP BY ใน DB2

    โจทย์ Query ตาราง TRANSACTIONS: นับจำนวน ORDER_ID ต่อ TRANSACTION_ID คำตอบ SELECT TRANSACTION_ID, COUNT(ORDER_ID) FROM TRANSACTIONS GROUP BY TRANSACTION_ID; ข้อมูลตัวอย่าง: TRANSACTIONS Table TRANSACTION_IDORDER_ID IRN22345A23118 IRN22345A45901 IRN22345A67990 IRN56902A23119 IRN99781A67921 IRN5

  2. ผลการรัน COBOL-DB2 เมื่อเปลี่ยนตัวแปรโดยไม่ BIND: SQLCODE -818

    ปัญหา โปรแกรม COBOL-DB2 เปลี่ยนความยาวตัวแปรจาก PIC X(5) เป็น PIC X(8) แต่ ไม่มีการเปลี่ยนแปลง SQL โปรแกรมถูก Compile ใหม่ แต่ ไม่ได้ BIND PLAN/PACKAGE ใหม่ ผลลัพธ์: SQLCODE -818 THE PRECOMPILER-GENERATED TIMESTAMP x IN THE LOAD MODULE IS DIFFERENT FROM THE BIND TIMESTAMP y BUILT FROM THE DBRM z

  3. แปลง MM/YY เป็น YYYY-MM-DD ใน MySQL ด้วย STR_TO_DATE

    ฟังก์ชัน STR_TO_DATE() STR_TO_DATE(string, format) ตัวอย่าง: ตาราง demo72 CREATE TABLE demo72 (due_date VARCHAR(40)); INSERT INTO demo72 VALUES (11/15), (02/20), (07/95); ข้อมูล +----------+ | due_date | +----------+ | 11/15 | | 02/20 | | 07/95 | +----------+ คำสั่ง: แปลง MM/YY → YYYY-M

  4. MySQL FIND_IN_SET: ค้นหาตัวเลขในคอลัมน์ CSV

    ฟังก์ชัน FIND_IN_SET() FIND_IN_SET(needle, haystack) needle: ค่าที่ต้องการค้นหา (String) haystack: สตริง CSV (Comma-Separated) คืนค่า: ตำแหน่ง 1-based (1,2,3...) หรือ 0 ถ้าไม่พบ ตัวอย่าง: ตาราง demo73 CREATE TABLE demo73 ( interest_id VARCHAR(100), interest_name VARCHAR(100) ); INSERT IN

  5. MySQL LIKE Query กับ Dynamic Array: ค้นหาในคอลัมน์ CSV

    สถานการณ์: คอลัมน์เก็บค่าหลายค่าคั่นด้วย Comma ตาราง demo74: user_names VARCHAR(250) เก็บ John Smith1,John Smith2,John Smith3 ไวยากรณ์ LIKE พร้อม Wildcard SELECT * FROM yourTable WHERE yourColumn LIKE CONCAT(%, searchValue, %) ORDER BY id ASC LIMIT limitValue; ตัวอย่างข้อมูล INSERT INTO demo74 (us

  6. INSERT หลายแถวพร้อมกันใน MySQL (Multi-row INSERT)

    ไวยากรณ์: INSERT หลายชุดค่า INSERT INTO yourTable (col1, col2, ...) VALUES (val1, val2, ...), (val1, val2, ...), (val1, val2, ...); ตัวอย่าง: ตาราง demo56 CREATE TABLE demo56 ( id INT, first_name VARCHAR(20), last_name VARCHAR(20), age INT ); INSERT INTO demo56 VALUES (1, John, Smi

  7. เรียงลำดับวางค่าเฉพาะไว้ท้ายสุดใน MySQL ด้วย ORDER BY

    เทคนิค: ใช้ Boolean Expression ใน ORDER BY MySQL แปลง Boolean เป็นตัวเลข: TRUE = 1, FALSE = 0 นำมาใช้จัดลำดับ: ค่า FALSE (0) จะอยู่ก่อน, TRUE (1) อยู่หลัง ไวยากรณ์ SELECT * FROM yourTable ORDER BY (column = specific_value), column ASC|DESC; ตัวอย่าง: ตาราง demo57 CREATE TABLE demo57 ( id INT N

  8. แก้ปัญหา CASE WHEN ไม่ทำงานใน MySQL: ใช้ Expression ให้ถูกต้อง

    ปัญหา: CASE WHEN กับ Expression ซับซ้อน บางครั้ง CASE WHEN ไม่ทำงานตามที่คาด เพราะ: Operator precedence (ลำดับความสำคัญของตัวดำเนินการ) Charset/Collation mismatch NULL handling Data type mismatch ตัวอย่างที่ทำงานถูกต้อง CREATE TABLE demo58 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fir

  9. ปรับค่า DECIMAL(19,2) ตอน INSERT ใน MySQL ด้วย TRUNCATE

    ปัญหา: DECIMAL(19,2) ปัดเศษอัตโนมัติ MySQL จะ ROUND (ปัดเศษ) ค่าที่มีทศนิยมมากกว่าที่กำหนด: INSERT INTO demo59 VALUES (15.346); -- เก็บเป็น 15.35 (ปัดขึ้น) วิธีแก้: ใช้ TRUNCATE() ตัดทิ้งทศนิยมเกิน INSERT INTO demo59 VALUES (TRUNCATE(15.346, 2)); -- เก็บเป็น 15.34 ตัวอย่าง: ตาราง demo59 CREATE T

  10. SELECT WHERE IN รวม NULL ใน MySQL

    ปัญหา: IN() ไม่จับคู่ NULL ใน SQL, NULL IN (value1, value2) คืนค่า UNKNOWN (ไม่ใช่ TRUE) → ไม่ถูก SELECT ตัวอย่าง: ตาราง demo60 CREATE TABLE demo60 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(20), last_name VARCHAR(20) ); INSERT INTO demo60 (first_name, last_name)

  11. เพิ่มแถวในตารางจากข้อมูลสตริงของอีกตารางใน MySQL (INSERT INTO SELECT)

    คำสั่ง INSERT INTO SELECT INSERT INTO target_table (col1, col2, ...) SELECT col1, col2, ... FROM source_table WHERE condition; ตัวอย่าง: demo61 (ต้นทาง) → demo62 (ปลายทาง) CREATE TABLE demo61 ( id INT, name VARCHAR(20) ); INSERT INTO demo61 VALUES (1, John), (2, David), (1, Mike), (2, Caro

  12. เข้ารหัสและถอดรหัสสตริงใน MySQL ด้วย AES_ENCRYPT/AES_DECRYPT

    ฟังก์ชันเข้ารหัส/ถอดรหัส AES AES_ENCRYPT(str, key_str) → คืนค่า BLOB (binary) AES_DECRYPT(crypt_str, key_str) → คืนค่า BLOB ต้อง CAST เป็น CHAR ไวยากรณ์ -- เข้ารหัสตอน INSERT INSERT INTO yourTable VALUES (AES_ENCRYPT(yourValue, secretKey)); -- ถอดรหัสตอน SELECT SELECT CAST(AES_DECRYPT(yourColumn

  13. ชนิดฟิลด์สำหรับค้นหาข้อมูลใน MySQL: ใช้ REGEXP_INSTR

    ฟังก์ชัน REGEXP_INSTR() (MySQL 8.0+) คืนตำแหน่งเริ่มต้นของ pattern ที่ match (1-based) หรือ 0 ถ้าไม่พบ — ใช้ใน WHERE ได้โดยตรง ไวยากรณ์ REGEXP_INSTR(expr, pattern, position, occurrence, return_option, match_type) 0 = พบ คืนค่า 0 = ไม่พบ ตัวอย่าง: ตาราง demo64 CREATE TABLE demo64 ( id INT NO

  14. อ้างอิง Primary Key เป็น Foreign Key หลายตารางใน MySQL

    หลักการ: 1 ตารางหลัก (Parent) → หลายตารางลูก (Children) Primary Key ของตารางหลัก สามารถถูกอ้างอิงเป็น Foreign Key โดยตารางลูกได้หลายตาราง ไวยากรณ์ ALTER TABLE ADD FOREIGN KEY ALTER TABLE child_table ADD CONSTRAINT constraint_name FOREIGN KEY (child_column) REFERENCES parent_table (parent_column);

  15. MySQL REGEXP: ดึงข้อมูล String+Number ที่ขึ้นต้นด้วยตัวเลขเฉพาะ

    สถานการณ์: ค่าผสม John500, John6500 ต้องการที่ขึ้นต้นด้วย 5 หรือ 6 ไวยากรณ์ REGEXP SELECT column FROM table WHERE column REGEXP ^prefix[56]; ตัวอย่าง: ตาราง demo45 CREATE TABLE demo45 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value VARCHAR(50) ); INSERT INTO demo45 (value) VALUES (Joh

  16. แปลง MM/YY เป็น YYYY-MM-DD พร้อมกำหนดวันใน MySQL

    ฟังก์ชัน STR_TO_DATE() แปลงสตริงเป็น DATE ตามรูปแบบที่ระบุ STR_TO_DATE(string, format) ไวยากรณ์สำหรับ MM/YY + วันคงที่ SELECT STR_TO_DATE(CONCAT(yourDay/, yourColumn), %d/%m/%y) FROM yourTable; ตัวอย่าง: ตาราง demo46 CREATE TABLE demo46 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, short_d

  17. ลบ/ซ่อนฟิลด์เฉพาะและแสดงข้อมูลอื่นใน MySQL ด้วย CASE WHEN

    สถานการณ์: แสดงนามสกุลถ้าชื่อเป็น John, มิฉะนั้นแสดงชื่อ ใช้ CASE WHEN ใน SELECT เพื่อคืนค่าตามเงื่อนไข ไวยากรณ์ SELECT CASE WHEN condition THEN result1 ELSE result2 END AS alias FROM yourTable WHERE filter_condition; ตัวอย่าง: ตาราง demo47 CREATE TABLE demo47 ( first_name VARCHAR(20)

  18. แก้ไข Syntax Error MySQL: สร้างตารางชื่อ Reserved Keyword (groups)

    ปัญหา: groups เป็น Reserved Keyword MySQL จำกัดคำสงวน (Reserved Keywords) ไม่ให้ใช้เป็นชื่อตาราง/คอลัมน์โดยตรง Error ที่เกิดขึ้น CREATE TABLE groups (id INT, name VARCHAR(40)); ERROR 1064 (42000): You have an error in your SQL syntax... near groups (id int, name varchar(40)) at line 1 วิธีแก้: ใช

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:10/229  20-คอมพิวเตอร์/Page Goto:1 4 5 6 7 8 9 10 11 12 13 14 15 16