Rumah > Artikel > pangkalan data > Bagaimana untuk Memilih Data daripada Lajur dengan Awalan Serupa menggunakan Dynamic SQL dalam MySQL?
SQL Dinamik untuk Pemilihan Lajur Wildcard
Soalan:
Andaikan anda mempunyai jadual pangkalan data dengan berbilang lajur berkongsi awalan yang serupa, seperti "Buah-buahan" dan "Sayur-sayuran." Bagaimanakah anda boleh memilih data dengan cekap daripada semua lajur bermula dengan perkataan tertentu tanpa menyatakan secara manual setiap nama lajur?
Contoh:
Pertimbangkan struktur jadual berikut:
<code class="markdown">Foods | Fruit | Vegetable ---------------------- Apples | Banana | Carrots Pears | Grapes | Potatoes Oranges | Lemon | Tomatoes</code>
Anda ingin memilih semua lajur yang namanya bermula dengan "Sayur-sayuran."
Jawapan:
Penggantian kad bebas langsung dalam pertanyaan MySQL, seperti SELECT % sayuran, tidak disokong. Untuk memilih semua lajur yang memenuhi kriteria ini secara dinamik, anda boleh membina pertanyaan SQL berdasarkan maklumat yang diperoleh daripada skema pangkalan data. Berikut ialah penyelesaian:
<code class="sql">SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'Foods' AND table_schema = 'YourDB' AND column_name LIKE 'Vegetable%'</code>
Pertanyaan ini mendapatkan semula nama semua lajur dalam jadual Makanan bermula dengan "Sayur-sayuran." Anda kemudian boleh menggunakan maklumat ini untuk membina pertanyaan kedua secara dinamik yang memilih data daripada lajur yang dikehendaki:
<code class="php">$columnList = mysql_query($columnsQuery); $columnArray = array(); while ($row = mysql_fetch_assoc($columnList)) { array_push($columnArray, $row['COLUMN_NAME']); } $columns = implode(",", $columnArray); $query = "SELECT " . $columns . " FROM Foods";</code>
Dengan melaksanakan pertanyaan ini, anda boleh mendapatkan semula semua data daripada lajur yang namanya bermula dengan "Sayur-sayuran" dalam pas sekali.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Data daripada Lajur dengan Awalan Serupa menggunakan Dynamic SQL dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!