Category: MySQL Tips

MySQL Tips : Query with Join , Left Join , Right Join

ในการเรียกดูข้อมูลย่อมหลีกเลี่ยงไม่ได้ว่า เราจะต้องมีการเชื่อมตารางข้อมูลตั้งแต่ 2 ตารางขึ้นไปเพื่อดูความสัมพันธ์ของข้อมูล เพราะฉะนั้นการเรียกดูข้อมูลระหว่าง 2 ตารางใดๆเราจะเรียกใช้ sql statment “JOIN” ซึ่งมีทั้ง “LEFT JOIN”, “RIGHT JOIN” หรือ “JOIN” ปกติ โดยแต่ละระบบฐานข้อมูล การเรียกใช้ JOIN ทั้ง 3 แบบอาจแตกต่างกันได้ เช่น บนระบบฐานข้อมูล Oracle การใช้ LEFT JOIN จะใช้สัญลักษณ์ (+) แทน เป็นต้น...

SQL Tips : Select data with ” Case When “

ในการจัดทำรายงานจากข้อมูลในตาราง บางครั้งเราต้องการที่จะเปลี่ยนมุมมองในการนำเสนอข้อมูลจากแนวตั้งรายบรรทัดให้เปลี่ยนเป็นแนวนอน หรือบางทีเราต้องการแปลงข้อมูลด้วยเงื่อนไข เช่น ถ้าข้อมูล > 0 ให้แสดงค่านั้น นอกนั้นให้แสดงค่าเป็น 0 เป็นต้น ซึ่งใน MySQL, Oracle , SQL Servers หรือ SQL Statement ทั่วไปจะมีฟังก์ชันพื้นฐานให้ใช้นั่นคือ Case … When เป็นการแสดงข้อมูลโดยผูกเงื่อนไขเข้าไป ซึ่งมีรูปแบบการเรียกใช้ดังนี้ ( CASE WHEN < Condition > THEN <...

MySQL : Alter Table Add , Change , Drop Column

สำหรับฐานข้อมูล MySQL ก็มีวิธีการจัดการกับ Column ในตารางที่เราสร้างขึ้นมาด้วยเช่นกัน ไม่ต้องลบสร้างตารางใหม่ ไม่ว่าจะเป็นการ เพิ่มคอลัมน์ (Add Column), เปลี่ยนชื่อคอลัมน์ (Rename Column), หรือ ลบคอลัมน์ (Drop, Delete Column) เราเรียกใช้คำสั่งบรรทัดเดียวดังนี้ 1. Add Column มีรูปแบบการเรียกใช้ดังนี้ ALTER TABLE  <tab_name> ADD ( <new column> datatype ); ตัวอย่าง เพิ่มคอลัมธ์ใหม่ชื่อ...

MySQL : How to Calculate Elapse Time or different Time

ในการคำนวนหาค่า”ส่วนต่างของเวลา” (Elapsed Time) ระหว่างค่าเวลา 2 ค่า ในฐานข้อมูล MySQL จะมีฟังก์ชันที่เกี่ยวข้อง 2 ฟังก์ชันคือ unix_timestamp(date) ฟังก์ชันที่แปลงค่าเวลา hr:mi:ss ให้กลายเป็นตัวเลขของ timestamp sec_to_time(second time) ฟังก์ชันที่แปลงเลขจาก “วินาที”(second) ให้เป็นเวลา hr:mi:ss สำหรับตัวอย่าง มีตารางเก็บบันทึกเวลาเริ่มต้น start_date กับเวลาสิ้นสุด end_date ต้องการหาส่วนต่างของเวลา start_date end_date 2013-11-16 15:29:52 2013-11-16 15:49:12...

MySQL : Search keyword in Text Content via Match Against

ระบบฐานข้อมูล MySQL มีฟังก์ชันอำนวยความสะดวกในการค้นหา “คำ (keyword)” จาก “ประโยคยาว (FullText)” ได้โดยเรียกใช้ฟังก์ชัน MATCH() AGAINST() ซึ่งมี Syntax ดังนี้ MATCH(Content) AGAINST(‘Keyword‘) ตัวอย่าง สมมติมีตารางที่เก็บข้อมูลที่มีประโยคยาวๆหลายๆบรรทัด และเราต้องการค้นหาว่ามีบรรทัดไหนที่มีข้อความที่ต้องการ ทำได้ดังนี้ drop table if exists tst_content ; create table tst_content ( `id` INT(11) NOT NULL...

MySQL : How to Select Concat String and Columns

สวัสดีครับ ในการ query ข้อมูลจากตารางใน MySQL เราสามารถ query เอาข้อมูลในแต่ละคอลัมน์มาต่อกันได้ หรือแม้แต่เอาข้อความอื่นมาต่อกับข้อมูลในคอลัมน์ก็ได้เช่นกัน วิธีการปฏิบัติทำได้โดยเรียกใช้ฟังก์ชัน CONCAT(str1,str2,…) โดยมีรูปแบบการเรียกใช้ดังนี้ select concat(col1,col2,col3,…) from table ตัวอย่างการเรียกใช้ สมมติว่าเรามีตาราง people เก็บข้อมูลบุคคล มีข้อมูลดังนี้ Fname Lname Age Manat Suksawai 21 Aimon Ubonkul 36 Suwit Jaidee 45 ถ้าเราต้องการสร้างรายงานโดยดึงข้อมูลจากตารางให้มีรูปแบบดังนี้...