MySQL 5.x dan Klausa yang Hilang WITH
MySQL versi 5.x tidak menyokong klausa WITH
, ciri SQL-99 standard untuk mentakrifkan Ungkapan Jadual Biasa (CTE). CTE ialah set hasil bernama sementara yang digunakan dalam satu pertanyaan.
Peninggalan ini berbeza dengan sistem pangkalan data utama lain seperti Oracle, SQL Server, PostgreSQL dan Firebird, yang kesemuanya termasuk sokongan CTE. Permintaan untuk fungsi ini telah wujud sejak sekurang-kurangnya 2006, tetapi kekal tidak dilaksanakan dalam MySQL 5.x.
Penyelesaian untuk MySQL 5.x
Tanpa klausa WITH
, pengguna MySQL 5.x mesti menggunakan kaedah alternatif untuk meniru gelagat CTE:
Janji MySQL 8.0
MySQL 8.0 dijangka memperkenalkan sokongan CTE, termasuk CTE rekursif. Peningkatan ketara ini akan meningkatkan pematuhan MySQL kepada piawaian SQL-99 dan membuka kunci manfaat ciri berharga ini.
Sehingga MySQL 8.0 tersedia secara meluas, penyelesaian yang disenaraikan di atas kekal sebagai penyelesaian praktikal untuk mengurus pertanyaan yang biasanya menggunakan CTE.
Atas ialah kandungan terperinci Mengapa MySQL (5.x) Tidak Menyokong Ungkapan Jadual Biasa (DENGAN Klausa)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!