2016-04-14 10 views
0

EINFÜGEN IN table_name (col_name) WERTE ('');MariaDB Ungültiges Unicode-Zeichen auswählen

SELECT * VON table_name WHERE col_name = '';

Ich meine, dass keine Zeile von der zweiten Abfrage zurückgegeben werden muss, aber zurückgegeben wird.

Die Tabelle ist utf8mb4 mit Kollation utf8mb4_unicode_ci.

Hat etwas mit ci zu tun? Ich möchte es behalten.

+0

Verwenden Sie MySQL oder MariaDB? Auch wenn MariaDB ein Ersatz für MySQL sein sollte, würde ich erwarten, dass das Verhalten in Situationen wie diesem anders sein könnte, also sollte eines der Tags entfernt werden. – Arjan

+0

Ich benutze MariaDB – user3396065

Antwort

0
SELECT '' = '' COLLATE utf8mb4_unicode_ci, 
     '' = '' COLLATE utf8mb4_unicode_520_ci; 

Renditen 1 und 0.

Das heißt, utf8mb4_unicode_ci behandelt Emoji als gleich, aber utf8mb4_unicode_520_ci behandelt sie als anders.

Ändern Sie also die Sortierung von col_name zu utf8mb4_unicode_520_ci.