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
Lepaskan: 2024-11-03 08:38:02
asal
1108 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan