Выбор турецких символов из таблицы?

У меня есть таблица MySQL, содержащая тексты (псевдонимы) с турецкими символами. Например, в турецком языке есть слово "çığır". ("cigir" с английскими буквами) Хранится в базе данных как "çığır". Когда я печатаю это слово на своей странице .php, оно печатается правильно (как «çığır»).

Но когда я делаю запрос

SELECT * FROM  users WHERE nickname LIKE 'çığır';

он возвращает пустой набор. Конечно, другой способ (псевдоним вроде çığır) работает, но я хочу иметь возможность сделать и первый. Как я могу это сделать?

p.s.: я пробовал

SET NAMES 'UTF8';
SET character_set_connection = 'UTF8';
SET character_set_client = 'UTF8';
SET character_set_results = 'UTF8';

это не работает.

Заранее спасибо!


person marvin    schedule 16.01.2013    source источник
comment
попробуйте SELECT * FROM users WHERE псевдоним LIKE '%çığır%'; таким образом он найдет слово в любом месте строки.   -  person justMe    schedule 16.01.2013
comment
Откуда вы делаете запрос? В какой сортировке находится таблица?   -  person Pekka    schedule 16.01.2013
comment
Я пробовал запрос в сценариях PHPmyAdmin и .php, но ничего не работало. Сопоставление — utf8_turkish_ci. спасибо за все ответы. Я попробую их сейчас.   -  person marvin    schedule 16.01.2013


Ответы (2)


Попробуй это:

SELECT * FROM  users WHERE Convert(nickname using utf8) LIKE 'çığır';
person LuigiEdlCarno    schedule 16.01.2013

Возможно, вам лучше перевести базу данных в UTF-8, убедившись, что php запрашивает правильную кодировку,

$link = mysql_connect('localhost', 'user', 'pass');
mysql_set_charset("UTF8", $link);

и вообще забудьте о забавной кодировке. Таким образом, все ваши запросы будут работать автоматически.

person Riccardo Zorn    schedule 16.01.2013