mySQL - сопоставление латинской (английской) формы ввода с данными utf8 (не английскими)

Я поддерживаю музыкальную базу данных в MySQL, как мне возвращать результаты, хранящиеся, например, в. «Tiësto», когда люди ищут «Tiesto»?

Все данные хранятся при полнотекстовой индексации, если это имеет значение.

Я уже использую комбинацию Левенштейна в PHP и REGEXP в SQL - не для того, чтобы попытаться решить эту проблему, а просто для повышения возможности поиска в целом.

PHP:

function Levenshtein($word) {

$words = array();
for ($i = 0; $i < strlen($word); $i++) {
    $words[] = substr($word, 0, $i) . '_' . substr($word, $i);
    $words[] = substr($word, 0, $i) . substr($word, $i + 1);
    $words[] = substr($word, 0, $i) . '_' . substr($word, $i + 1);
    }
$words[] = $word . '_';
return $words;
}

$fuzzyartist = Levenshtein($_POST['searchartist']);
$searchimplode = "'".implode("', '", $fuzzyartist)."'";

MySql:

SELECT *
FROM new_track_database
WHERE artist REGEXP concat_ws('|', $searchimplode);

Кроме того, я часто выполняю преобразования набора символов и санацию строк в PHP, но это всегда был ДРУГОЙ способ - стандартизация нелатинских символов. Я не могу заставить себя выполнить противоположный процесс, но только при определенных обстоятельствах, основанных на данных, которые я сохранил.

Ответы на вопрос(1)

Ваш ответ на вопрос