Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memilih Lajur Secara Dinamik Berdasarkan Awalan Wildcard dalam MySQL?

Bagaimana untuk Memilih Lajur Secara Dinamik Berdasarkan Awalan Wildcard dalam MySQL?

DDD
DDDasal
2024-11-04 04:44:29875semak imbas

How to Select Columns Dynamically Based on a Wildcarded Prefix in MySQL?

Memilih Lajur Secara Dinamik Berdasarkan Awalan Kad Liar

Dalam pangkalan data, seseorang mungkin menghadapi situasi di mana mereka perlu memilih lajur tertentu berdasarkan bersama awalan dalam nama mereka. Walaupun percubaan pertanyaan MySQL yang disediakan dengan kad bebas tidak berfungsi, terdapat penyelesaian yang melibatkan penjanaan SQL secara dinamik.

Untuk mendapatkan semula nama lajur yang bermula dengan awalan tertentu, seseorang boleh memanfaatkan pertanyaan SQL berikut:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Foods'
    AND table_schema = 'YourDB'
    AND column_name LIKE 'Vegetable%'

Dalam pertanyaan ini, 'Makanan' mewakili nama jadual, 'YourDB' ialah skema pangkalan data dan 'Sayur-sayuran' ialah awalan lajur yang dikehendaki. Gantikan nilai ini dengan jadual, skema dan awalan khusus anda.

Setelah nama lajur diperoleh, anda boleh membina pertanyaan secara dinamik untuk memilih data yang sepadan. Contohnya:

SELECT `VegetableName1`, `VegetableName2`, `VegetableName3`
FROM `Foods`

Di sini, andaikan nama lajur yang diperoleh ialah 'NamaNama1', 'NamaNama2' dan 'NamaNama3'. Gantikan nama ini dengan nama yang diperoleh daripada pertanyaan INFORMATION_SCHEMA di atas.

Dengan menggunakan pendekatan ini, anda boleh memilih lajur tertentu dengan berkesan berdasarkan awalan kad bebas kongsi mereka. Teknik ini berguna apabila bekerja dengan pangkalan data di mana nama lajur mengikut konvensyen penamaan yang konsisten.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Lajur Secara Dinamik Berdasarkan Awalan Wildcard dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn