2015-06-05 16 views
5

Moja baza danych, tabele, pola wszystkie używają utf8mb4. Potrafię przechowywać dobrze symbole emoji w niektórych polach. Teraz próbuję kwerendy, takie jak:MySql zwraca złe wyniki dla łańcuchów emoji

select * from user WHERE name = „”

Wyjątkowy, wynikiem są rekordy z nazwami pól różni takich jak „”

Wygląda mysql mecze emoji ciągi autorem ich długości, ale nie treści.

Jakiś pomysł na rozwiązanie tego problemu? Wielkie dzięki.

+0

To może pomóc: http://stackoverflow.com/questions/7814293/how-to-insert-utf-8-mb4-characteremoji-in-ios5-in-mysql –

+0

Dziękuję Stuart za bardzo szybką odpowiedź. Mój problem jest zupełnie inny. Mogę przechowywać, przeglądać i wyciągać bardzo dobrze wszystkie ciągi z symbolami emoji. Tylko problem z dopasowaniem ich do zapytania. – Tony

+0

ta sama sytuacja tutaj. – z33

Odpowiedz

0

Co to jest porządek sortowania na stole? Ponieważ używasz utf8mb4, powinno to być utf8mb4_unicode_ci. Coś innego i prawdopodobnie dostaniesz problem, który widzisz - gorzej, możesz nawet odzyskać wiele rekordów.

Aby ustawić użycie zlecenia sortowania:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 
+0

Mam taki sam problem, jak OP, i mam 'collation_connection',' collation_database' i 'collation_server' ustawiony na' utf8mb4_unicode_ci'. Wyrażenia "SELECT" wyglądają tak, jakby pasowały tylko do liczby emoji, a nie do rzeczywistej treści (co najmniej dziwne). – ACJ

0

Spróbuj tego:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; 
1

Podobnie zrobił tego polecenia do mojego stolika:

alter table TableName przekonwertować na zestaw znaków utf8mb4 COLLATE utf8mb4_bin;

To wszystko. wynik jest wtedy poprawny.