MySQL Tip
SQL Tip! ค้นหาฟิวล์ในฐานข้อมูล ว่ามีฟิวล์นี้อยู่ตารางไหนบ้าง ?

SQL Tip! ค้นหาฟิวล์ในฐานข้อมูล ว่ามีฟิวล์นี้อยู่ตารางไหนบ้าง ?

มีน้องๆ ถามมา (จำได้ว่าเคยทำคลิปสาธิตไว้แล้ว แต่ยังไม่ได้เขียนลง Blog นี้)
ต้องการหาฟิวล์  xxx ว่ามีฟิวล์นี้อยู่ในตารางไหนบ้าง ในฐานข้อมูล MySQL ?

วันนี้เลยมาตอบคำถามน้องๆ ครับ

คำสั่งสำหรับค้นหาคือ
SELECT DISTINCT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name LIKE ‘ชื่อฟิวล์ที่จะค้นหา’
AND TABLE_SCHEMA=’ชื่อฐานข้อมูล’

เป็นการค้นหาจากตาราง INFORMATION_SCHEMA.COLUMNS  ที่เป็นโครงสร้างของ MySQL นั้นเอง มันจะเก็บข้อมูลไว้อยู่แล้วเพียงเราต้องมีสิทธิการเข้าถึงด้วยนะครับ

ก็จะออกมาเป็นแบบนี้นะครับ
โดยโจทย์ผมต้องการค้นหาฟิวล์ที่ชื่อ hn ว่ามีฟิวล์ hn อยู่ตารางไหนบ้างในฐาน hos

ก็จะทราบว่ามีอยู่  445 ตารางเลยทีเดียว
โดยผมจะดึงมาแสดงแค่ 2 คอลัมคือ TABLE_NAME, COLUMN_NAME เพราะมันเกี่ยวข้องกับโจทย์ที่เราต้องการ  ถ้าให้แสดงทุกคอลัมก็ได้ประมาณนี้

สังเกตุว่าจะแสดงที่คอลัม เยอะมากมาย  ก็เอาไปใช้ประโยชน์ต่อไปได้นะครับ
สามารถดูประเภทของฟิวล์ได้ ที่ฟิวล์  data_type






หรือจะตรวจสอบว่าฟิวล์นี้เก็บ เป็น character อะไร ได้ที่คอลัม CHARACTER_SET_NAME

ก็เอาไปต่อยอดเอานะครับ

หวังว่าจะเป็นประโยชน์นะครับสำหรับ admin มือใหม่
วันนี้ก็สั้นๆประมาณนี้ละกัน
มีคำถามก็ส่งมาได้ครับ  ขอบคุณที่ติดตาม
อย่าลืมกดติดตามกันด้วยนะครับ

Loading

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.