Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL
MySQL
  1. MySQL UPDATE ด้วย AND Operator: อัปเดตเงื่อนไขหลายอย่าง

    ใช้ AND ใน SET Clause ของ UPDATE MySQL อนุนุญาตให้ใช้ Logical Operator (AND, OR) ใน SET clause ได้ โดยเงื่อนไขจะคืนค่า 1 (True) หรือ 0 (False) ตัวอย่าง: อัปเดต isMarried = 1 ก็ต่อเมื่อ Age=29 AND Id=100 CREATE TABLE DemoTable613 ( Id INT, Age INT, isMarried TINYINT(1) ); INSERT INTO DemoTable6

  2. MySQL ค้นหาชื่อที่คล้ายกันแตกต่าง Space ด้วย LTRIM/RTRIM

    ปัญหา: ข้อมูลมี Space นำหน้า/ท้าย ทำให้ JOIN/WHERE ไม่ Match ข้อมูล John และ John ดูเหมือนกันแต่ MySQL เห็นว่าต่างกัน ใช้ LTRIM() (ตัด Space ซ้าย) และ RTRIM() (ตัด Space ขวา) หรือ TRIM() (ตัดทั้งสองข้าง) ตัวอย่าง CREATE TABLE DemoTable614 ( EnterName VARCHAR(100), ReenterName VARCHAR(100)

  3. การรวมข้อมูลจากหลายแถวด้วย GROUP_CONCAT() ใน MySQL

    ภาพรวม ฟังก์ชัน GROUP_CONCAT() ใช้รวมค่าจากหลายแถว (Rows) ให้กลายเป็นสตริงเดียว คั่นด้วยเครื่องหมายจุลภาค (หรือตัวคั่นที่กำหนด) มักใช้ร่วมกับ GROUP BY ไวยากรณ์พื้นฐาน GROUP_CONCAT([DISTINCT] expr [ORDER BY expr] [SEPARATOR str]) ตัวอย่างการใช้งาน 1. สร้างตารางและเพิ่มข้อมูล CREATE TABLE DemoTable

  4. วัตถุประสงค์ของคำสั่ง CHANGE ใน MySQL: เปลี่ยนชื่อ Column

    คำสั่ง ALTER TABLE ... CHANGE CHANGE ใช้สำหรับ เปลี่ยนชื่อ Column และ/หรือ เปลี่ยน Data Type/Attributes พร้อมกัน Syntax ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition; ตัวอย่าง: เปลี่ยนชื่อ Column Name → StudentName CREATE TABLE DemoTable796 ( StudentId INT NO

  5. สร้างฟังก์ชัน MySQL ทำตรงข้าม INITCAP (ตัวแรกพิมพ์เล็ก ตัวอื่นพิมพ์ใหญ่)

    Custom Function: Anti-INITCAP INITCAP() (Oracle/PostgreSQL) ทำให้ตัวแรกของแต่ละคำเป็นพิมพ์ใหญ่ ที่เหลือพิมพ์เล็ก MySQL ไม่มี Built-in แต่สามารถสร้าง Function เองได้ ฟังก์ชัน Anti-INITCAP: ตัวแรกพิมพ์เล็ก, ตัวอื่นพิมพ์ใหญ่ DELIMITER // CREATE FUNCTION convertFirstLetterToLowerAndRemainingToCapital(i

  6. รวมหลาย SELECT Query ขั้นสูงใน MySQL ด้วย UNION

    ใช้ UNION รวมผลลัพธ์จากหลาย SELECT UNION รวม Result Set จากหลาย SELECT Statement ต้องมีจำนวนคอลัมน์และ Data Type ตรงกัน Syntax (SELECT col1, col2 FROM table1) UNION (SELECT col1, col2 FROM table2) ORDER BY col1 DESC; ตัวอย่าง: รวมข้อมูลจาก 2 ตาราง CREATE TABLE DemoTable1 (Value1 INT, Value2 INT);

  7. แยก First Name และ Last Name จากคอลัมน์เดียวใน MySQL

    ใช้ SUBSTRING_INDEX() และ REPLACE() แยกชื่อ เมื่อข้อมูลชื่อเก็บในรูปแบบ LastName | FirstName MiddleName ในคอลัมน์เดียว สามารถแยกได้ด้วย String Functions ตัวอย่างข้อมูล CREATE TABLE DemoTable (Name VARCHAR(100)); INSERT INTO DemoTable VALUES (Chris | Bob Brown), (Carol | Robert Taylor), (Sam | Davi

  8. ENUM NOT NULL ใน MySQL: ค่า Default ต่างกันเมื่อมี/ไม่มี NOT NULL

    พฤติกรรม ENUM ต่างกันระหว่างมีและไม่มี NOT NULL ENUM ใน MySQL มีค่า Default ที่แตกต่างกัน ขึ้นกับว่าประกาศ NOT NULL หรือไม่ CASE 1: ENUM โดยไม่มี NOT NULL → Default = NULL CREATE TABLE DemoTable1 ( isMarried ENUM(YES, NO) ); INSERT INTO DemoTable1 VALUES(); -- ไม่ระบุค่า SELECT * FROM DemoTa

  9. MySQL ดึงข้อมูลที่ขึ้นต้นด้วยสระ 2 ตัวติดกัน (REGEXP)

    ใช้ REGEXP / RLIKE สำหรับ Pattern Matching MySQL รองรับ Regular Expression ผ่าน REGEXP (หรือ RLIKE alias) สำหรับ Pattern Matching ที่ซับซ้อนกว่า LIKE ตัวอย่าง: เมืองที่ขึ้นต้นด้วยสระ 2 ตัวติดกัน CREATE TABLE DemoTable664 (CityName VARCHAR(100)); INSERT INTO DemoTable664 VALUES (Springfield), (Aust

  10. MySQL ORDER BY Keyword Match: เรียงตามคำค้นหาใน Text

    จัดลำดับผลลัพธ์ตาม Keyword Matching เมื่อต้องการให้แถวที่มี Keyword ตรงกับคำค้นหาอยู่บนสุด ใช้ CASE หรือ INSTR() / LOCATE() ใน ORDER BY ตัวอย่าง: เรียง Game ตามคำว่า Candy และ cash CREATE TABLE DemoTable602 (GameName TEXT); INSERT INTO DemoTable602 VALUES (Candy cash game), (Pubg), (cash Candy gam

  11. MySQL Quoted vs Unquoted Identifier: เมื่อไหร่ต้องใช้ Backtick

    Identifier Quoting ใน MySQL ใน MySQL ใช้ Backtick (`) เพื่อ Quote Identifier (ชื่อตาราง, คอลัมน์, Database, View, Stored Procedure, Alias) เพื่อให้ใช้ Reserved Keywords หรืออักขระพิเศษเป็นชื่อได้ กติกาพื้นฐาน Unquoted: ต้องเริ่มต้นด้วยตัวอักษหรือ _ แล้วตามด้วย ตัวอักษร ตัวเลข _ $ เท่านั้น Quoted (

  12. วิธีหาชื่อ Column ใน MySQL: SHOW COLUMNS และ INFORMATION_SCHEMA

    สองวิธีหลักในการดูโครงสร้างตาราง (Schema) วิธีที่ 1: SHOW COLUMNS (สั้น กวดขวาง) SHOW COLUMNS FROM table_name; -- หรือ DESC table_name; -- หรือ DESCRIBE table_name; ผลลัพธ์: FieldTypeNullKeyDefaultExtra ClientIdint(11)NOPRINULLauto_increment ClientNamevarchar(100)YESNULL ClientAgeint(11)YESNULL C

  13. แสดงโครงสร้าง Stored Procedure ใน MySQL ด้วย SHOW CREATE PROCEDURE

    คำสั่ง SHOW CREATE PROCEDURE ใช้เพื่อดู Definition (โค้ดสร้าง) ของ Stored Procedure ที่มีอยู่แล้ว รวมถึง Character Set, Collation, SQL Mode และ Definer Syntax SHOW CREATE PROCEDURE procedure_name; ตัวอย่างเต็ม สร้าง Procedure: DELIMITER // CREATE PROCEDURE sample_Procedure() BEGIN SELECT HELLO

  14. นับและหารสองชุดข้อมูลใน MySQL (Conditional Aggregation)

    นับจำนวนแถวตามเงื่อนไข แล้วนำมาหารกัน ใช้ COUNT(*) ร่วมกับ WHERE หรือ CASE เพื่อนับแยกกลุ่ม แล้วนำผลลัพธ์มาคำนวณ (หาร, บวก, ลบ, คูณ) ตัวอย่าง: นับแต่งงาน vs โสด แล้วหารกัน CREATE TABLE DemoTable(isMarried TINYINT(1)); INSERT INTO DemoTable VALUES(1), (0), (1), (1), (1); Query นับและหาร: SELECT

  15. MySQL ORDER BY FIELD ใช้ CASE Statement จัดลำดับกำหนดเอง

    จัดลำดับข้อมูลตามลำดับที่กำหนดเองด้วย CASE เมื่อต้องการเรียงข้อมูลไม่ใช่ตาม Alphabet หรือ Numeric Order แต่มาจากลำดับที่เรากำหนดเอง (Custom Sort Order) ให้ใช้ CASE ใน ORDER BY clause ตัวอย่าง: จัดลำดับ StudentId ตามลำดับที่ต้องการ CREATE TABLE DemoTable(StudentId VARCHAR(100)); INSERT INTO DemoTab

  16. MySQL SLEEP() Function เป็น Busy-Wait หรือไม่? และการใช้งาน

    คำตอบ: ไม่ใช่ Busy-Wait MySQL SLEEP() ไม่ใช่ Busy-Wait มันเป็น System Call ที่ปล่อย CPU ให้ Process อื่นทำงาน (Sleep/Wait State) ไม่ได้วน Loop เช็คเวลาอย่างต่อเนื่อง การใช้งาน SLEEP() Syntax: SLEEP(seconds) - หยุดนิ่งเป็นจำนวนวินาทีที่ระบุ คืนค่า 0 เสมอเมื่อจบ ตัวอย่าง CREATE TABLE DemoTable(First

  17. ตั้งค่า Auto Increment เริ่มต้นต่างกันสองตารางด้วย User Variable

    ใช้ LAST_INSERT_ID() และ User-Defined Variable เมื่อต้องการให้ตารางที่สองเริ่ม Auto Increment จากค่าที่ต่างจากตารางแรก (เช่น ตารางแรกเริ่ม 1, ตารางที่สองเริ่ม 2) สามารถใช้ LAST_INSERT_ID() เก็บไว้ใน User Variable แล้วนำไปใช้ ขั้นตอนการทำงาน -- 1. สร้างตารางแรก มี Auto Increment ปกติ CREATE TABLE De

  18. สร้าง Stored Procedure สุ่มเลข 5 ตัวใน MySQL

    การสุ่มข้อมูลด้วย ORDER BY RAND() และ Stored Procedure MySQL ไม่มีฟังก์ชันสุ่มตัวเลข built-in แบบโปรแกรมมิ่งทั่วไป แต่สามารถสุ่มแถวข้อมูลได้ด้วย ORDER BY RAND() แล้วค่อย LIMIT จำนวนที่ต้องการ สร้าง Stored Procedure สุ่ม 5 ค่า DELIMITER // CREATE PROCEDURE generate_Random5Numbers() BEGIN SELECT

  19. Query MySQL ดึงข้อมูลที่จะมาถึงในอีก 12 ชั่วโมง

    การใช้ DATE_ADD และ INTERVAL สำหรับช่วงเวลา เมื่อต้องการดึงบันทึกที่มีวันเวลา (datetime) อยู่ในช่วง 12 ชั่วโมงข้างหน้า สามารถใช้ฟังก์ชัน DATE_ADD() ร่วมกับ INTERVAL และ BETWEEN รูปแบบคำสั่ง SELECT * FROM your_table WHERE DATE_ADD(your_datetime_column, INTERVAL 12 HOUR) BETWEEN NOW() AND DATE_ADD(NO

  20. MySQL CASE Statement เร็วกว่า PHP if statement หรือไม่?

    การเปรียบเทียบประสิทธิภาพ: MySQL CASE vs PHP if สรุป: คำสั่ง MySQL CASE statement เร็วกว่า PHP if statement อย่างมีนัยสำคัญ เนื่องจาก MySQL ประมวลผลข้อมูลภายใน Database Engine โดยตรง ในขณะที่ PHP ต้องดึงข้อมูลมาทั้งหมดก่อนแล้วค่อยประมวลผลใน Application Layer ซึ่งเพิ่ม Latency และ Memory Usage ตัวอย

Total 4564 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:82/229  20-คอมพิวเตอร์/Page Goto:1 76 77 78 79 80 81 82 83 84 85 86 87 88