Rumah  >  Artikel  >  pangkalan data  >  Medan Unik MySQL: Bagaimana Mengendalikan Ruang Jejak?

Medan Unik MySQL: Bagaimana Mengendalikan Ruang Jejak?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 02:40:03468semak imbas

  MySQL Unique Fields: How to Handle Trailing Spaces?

Pangkalan Data MySQL dengan Medan Unik: Mengabaikan Ruang Penamat

Apabila bekerja dengan pangkalan data MySQL, anda mungkin menghadapi isu di mana medan unik mengabaikan ruang penamat . Ini boleh berlaku apabila anda perlu menyimpan input dengan jarak yang berbeza-beza di sebelah kiri atau kanan perkataan, tetapi pangkalan data memotong ruang belakang secara automatik.

Isu ini berpunca daripada pengendalian rentetan lalai MySQL, yang mengabaikan ruang kosong mengekor semasa perbandingan. Untuk memahami tingkah laku ini, pertimbangkan perkara berikut:

<br>VARCHAR my_field UNIQUE NOT NULL;<br>

Jika anda memasukkan 'epal' dan ' apple' (dengan ruang mengekor) ke dalam medan ini, semakan unik akan gagal kerana MySQL menganggap kedua-dua nilai sebagai sama.

Penyelesaian Kemungkinan:

  1. Nilai Simpan sebagai VARBINARY:
    Tukar input kepada VARBINARY untuk mengekalkan corak bait yang tepat, termasuk ruang mengekor.

<br>ALTER JADUAL my_table UBAHSUAI my_field VARBINARY (255) UNIK;<br>

  1. Gunakan NO PAD Collations (MySQL 8.0 ):
    MySQL 8.0 dan ke atas menyokong pengumpulan dengan NO PAD atribut, yang mengekalkan ruang mengekor dalam perbandingan rentetan.


BUAT JADUAL my_table (
my_field VARCHAR(255) UNIQUE COLLATE utf8mb4_0900_ai_ci
);< ;/pre>

  1. Pengumpulan Tersuai (Tidak Disyorkan):Anda boleh membuat penyusunan tersuai dengan atribut NO PAD, tetapi ini tidak disyorkan kerana ia boleh memperkenalkan isu keserasian.

Kesimpulan:

Dengan memahami tingkah laku lalai MySQL dan melaksanakan penyelesaian yang sesuai, anda boleh memastikan bahawa medan unik anda mengendalikan ruang belakang sebagai dikehendaki.

Atas ialah kandungan terperinci Medan Unik MySQL: Bagaimana Mengendalikan Ruang Jejak?. 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