2012-06-19 3 views
1

Моя таблица сортировки utf8_general_ci и набор символов utf8. Если я запустил такой запрос, как показано ниже, он не показывает мне никакого значения.Как обращаться с умляутами в предложении MySQL WHERE?

SELECT * FROM mytable WHERE myfield = "Björn Borg" 
OR myfield = "FrüFrü & Tigerlily"; 

Так как я могу получить значения из таблицы?

+1

Действительно ли вы выполняете запрос, включая полуколоны? –

+1

@ Jan Zyka: да, я выполняю запрос с использованием полуколоней –

+0

удивительный человек-паук ... :) http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html (вы не знаете, t использовать точку с запятой таким образом) – ajreal

ответ

1

Проблема может быть в вашей кодировке. Попробуйте запустить

SET NAMES 'utf8' 

А затем ваш запрос.

+0

@Ashish Какие инструменты/скрипты вы используете для просмотра набора результатов? –

+0

Я использую SQMyog v-9.60 –

+0

@Ashish Была ли ваша таблица создана как utf8/utf8_general_ci или вы преобразовали ее в utf8 из какой-либо другой кодировки? –

0

Существует больше мест, где MySQL определяет наборы символов, в том числе на уровне столбцов.

Чтобы проверить настройки базы данных: SHOW VARIABLES LIKE 'char%'; SHOW VARIABLES LIKE 'collation%';

Чтобы проверить настройки таблицы: SHOW CREATE TABLE tablename;

Чтобы проверить отдельные столбцы: ПОКАЗАТЬ ПОЛНЫЕ КОЛОНКИ В tablename;

Если вы создали базу данных с неправильной кодировкой, вам придется изменить все случаи плохой кодировки во всех этих случаях.

+0

У меня есть решение, которое работает с SET NAMES 'utf8', но оно работает только для myfield = «FrüFrü & Tigerlily», но оно не работает для myfield = «Björn Borg», так что я должен сделать для этого и как могу ли я использовать это в своей хранимой процедуре? –

Смежные вопросы