Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Data daripada Lajur dengan Awalan Serupa menggunakan Dynamic SQL dalam MySQL?

Bagaimana untuk Memilih Data daripada Lajur dengan Awalan Serupa menggunakan Dynamic SQL dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 08:38:021064semak imbas

How to Select Data from Columns with Similar Prefixes using Dynamic SQL in 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!

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