Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีค้นหาตารางที่มีคอลัมน์ชื่อเฉพาะใน MySQL

เพื่อค้นหาตารางที่มีคอลัมน์ชื่อตรงกับเงื่อนไข ใช้ตาราง information_schema.columns

รูปแบบคำสั่ง (Syntax)

select distinct table_name from information_schema.columns where column_name like '%yourSearchValue%' and table_schema=database();

ตัวอย่าง: ค้นหาตารางที่มีคอลัมน์ชื่อว่า "Client"

mysql> select distinct table_name 
    from information_schema.columns 
    where column_name like '%Client%' 
    and table_schema=database();

ผลลัพธ์ตัวอย่าง:

+----------------+
| table_name     |
+----------------+
| demotable449   |
| demotable450   |
| demotable461   |
| demotable517   |
| demotable529   |
| demotable534   |
| demotable537   |
| demotable543   |
| demotable547   |
+----------------+
9 rows in set (1.19 sec)

ตรวจสอบโครงสร้างตารางหนึ่งในตารางที่พบ

วิธีค้นหาตารางที่มีคอลัมน์ชื่อเฉพาะใน MySQL

คำอธิบายเพิ่มเติม

  • information_schema.columns เก็บข้อมูลเมตาของคอลัมน์ทั้งหมดในฐานข้อมูล
  • table_schema=database() จำกัดเฉพาะฐานข้อมูลปัจจุบัน
  • DISTINCT ป้องกันชื่อตารางซ้ำ (กรณีมีหลายคอลัมน์ match)
  • ใช้ % เป็น wildcard สำหรับ LIKE pattern

คิวรี่เพิ่มเติมที่มีประโยชน์

-- ดูชื่อคอลัมน์และชนิดข้อมูลด้วย
SELECT table_name, column_name, data_type 
FROM information_schema.columns 
WHERE column_name LIKE '%Client%' AND table_schema = DATABASE();