MySQL/MariaDB: Pesanan Mengikut Percanggahan Subkueri
Dalam versi MySQL sebelum 5.5, subqueries menghormati klausa ORDER BY dalam. Walau bagaimanapun, tingkah laku ini telah berubah dalam versi terkini, termasuk MariaDB 10.0.14.
Isu Diperhatikan
Apabila melaksanakan pertanyaan berikut dalam MariaDB 10.0.14:
SELECT t2.Code from (select Country.Code from Country order by Country.Code desc ) AS t2;
Hasilnya kini diisih dalam susunan menaik (atau mengikut susunan semula jadi), berbeza dengan penurunan yang dijangkakan pesanan.
Penyiasatan
Selepas meneliti dokumentasi MariaDB, tingkah laku yang diperhatikan tidak dianggap sebagai pepijat. Menurut standard SQL, jadual dan subkueri ialah set baris yang tidak tertib. Oleh itu, pengoptimum boleh memilih untuk mengabaikan klausa ORDER BY dalam subquery.
Disyorkan Penyelesaian
Untuk memastikan susunan hasil yang konsisten, adalah disyorkan untuk menggunakan klausa ORDER BY pada pertanyaan luar :
SELECT t2.Code from (select Country.Code from Country) AS t2 ORDER BY t2.Code DESC;
Sebagai alternatif, menggunakan klausa LIMIT dalam subkueri juga boleh memaksa ORDER BY untuk digunakan:
SELECT t2.Code from (select Country.Code from Country ORDER BY Country.Code DESC LIMIT 2) AS t2;
Gelagat dalam MySQL 5.6
Walaupun ujian khusus tidak tersedia pada masa ini, ulasan pada laporan pepijat mencadangkan bahawa MySQL 5.6 mungkin juga menunjukkan tingkah laku yang sama seperti MariaDB 10.0 .14, mengabaikan klausa ORDER BY dalam subqueries.
Atas ialah kandungan terperinci Mengapakah ORDER BY Subquery MariaDB Saya Nampaknya Diabaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Mysqlviewshavelimitations: 1) theDon'tsupportallsqloperations, bintikDatamanipulationThroughviewswithjoinsorsubqueries.2) merekacanimpactperformance, terutamanya dengan komplekssum

Betul -betul

Mysqldoes'timposeahardlimitontriggers, butpracticalfactorsDeterminetheirefectiveus

Ya, It'sSsafetostoreBlobDatainMysql, ButConserthySefactors: 1) Storagespace: BlobScanconsumesignificantspace, PotensiCreaseScostSandSlowingPerformance.2)

Menambah pengguna MySQL melalui antara muka web PHP boleh menggunakan sambungan MySQLI. Langkah -langkah adalah seperti berikut: 1. Sambungkan ke pangkalan data MySQL dan gunakan sambungan MySQLI. 2. Buat pengguna, gunakan pernyataan CreateUser, dan gunakan fungsi kata laluan () untuk menyulitkan kata laluan. 3. Mencegah suntikan SQL dan gunakan fungsi mysqli_real_escape_string () untuk memproses input pengguna. 4. Berikan kebenaran kepada pengguna baru dan gunakan pernyataan geran.

Mysql'sblobissusuipableforstoringbinarydatawithinarelationaldatabase, sementara

Toaddauserinmysql, gunakan: createuser'username '@' host'identifiedby'password '; here'showtodoitsecurely: 1) choosethehostcareflelytocon trolaccess.2) SetResourcelImitSwithOptionsLikeMax_queries_per_hour.3) USESTRONG, UNIQUEPASSWORDS.4) Enforcessl/TLSConnectionswith

Toavoidcommonmistakeswithstringdatatypesinmysql, fahamistringtypenuances, choosetherighttype, danManageencodingandcollationsettingsefectively.1) usecharfarfixed-lengthstrings, varcharforvariable-length, andtext/blobforlargerdata.2)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!
