Category: MySQL Tips

mySQL : how to find and get string in 1 query

วันนี้เราจะมารู้จักฟังก์ชันใน mysql query เพื่อใช้ในการค้นหาข้อความ หรือ คำ ในฐานข้อมูล เพื่อนำไปใช้ตามวัตถุประสงค์ต่างๆ ซึ่งมีฟังก์ชันที่เกี่ยวข้องคือ instr() ฟังก์ชันที่ใช้ในการค้นหาตำแหน่งเร่ิมต้นของตัวอักษร ,คำ, หรือประโยคที่เราสนใจ ซึ่งมีรูปแบบการเรียกใช้ดังนี้ 2. substr() ฟังก์ชันที่ใช้ในการตัดคำ หรือข้อความออกมาจาก String เรามาดูตัวอย่างการใช้งานกัน ตัวอย่าง 1. สมมติมีข้อความว่า ‘my-word-test-now’ เราต้องการตัดเอาคำว่า ‘test’ ออกมาจาก String เราทำได้โดย 2 ขั้นตอน คือ 1.1 ใช้...

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...