Penyelesaian masalah Mariadb menggunakan CREATE TABLE SELECT UNION
P粉115840076
P粉115840076 2023-08-02 11:25:48
0
1
599
<p>Saya sedang mengusahakan skrip PHP yang mengandungi enam UNION SELECT dan dalam skrip arahan ini berfungsi dengan baik. Perintah ini juga berfungsi dengan baik apabila dilaksanakan daripada klien SQL. Walau bagaimanapun, apabila saya cuba meletakkan pernyataan SELECT di dalam CREATE TABLE mytable SELECT, saya mendapat mesej ralat berikut: </p> <pre class="brush:php;toolbar:false;">Nama lajur tidak betul ''</pre> <p>Dalam lima daripada enam serpihan UNION SELECT, terdapat nama lajur bernama '', yang digunakan sebagai ruang letak semasa mengisi data dalam bahagian skrip yang berikutnya. Tetapi dalam salah satu KESATUAN, kedudukan yang sama ialah lajur varchar(32). <br /><br />Nampaknya kewujudan lajur "tanpa nama" tidak penting dalam pelaksanaan biasa arahan itu. Tetapi dalam versi CREATE TABLE, ia tidak menyukai ini. <br /><br />Mengapakah SELECT dan CREATE TABLE SELECT mempunyai peraturan yang berbeza untuk nama lajur kesatuan? </p><p><br /></p>
P粉115840076
P粉115840076

membalas semua(1)
P粉821231319

Jadual tidak boleh mengandungi nama lajur kosong atau tiada, manakala set hasil boleh. Pernyataan CREATE TABLE SELECT memperoleh nama lajur jadual daripada set hasil pernyataan SELECT. Oleh itu, anda perlu memastikan bahawa setiap lajur set hasil mempunyai nama, sama ada diperoleh daripada lajur dalam beberapa jadual atau ditentukan melalui alias AS. Contohnya,

SELECT 'one' AS tablename, cola, colb, colc FROM table_one
 UNION ALL
SELECT 'two',              cola, colb, colc FROM table_two
 UNION ALL
SELECT 'three',            cola, colb, colc FROM table_three

terpakai pada kenyataan CREATE TABLE, manakala

SELECT 'one',   cola, colb, colc FROM table_one
 UNION ALL
SELECT 'two',   cola, colb, colc FROM table_two
 UNION ALL
SELECT 'three', cola, colb, colc FROM table_three

Tidak berkenaan kerana ia tidak memberikan nama lajur alias pada lajur pertama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan