Какая конфигурация MySQL точно соответствует сопоставлению строк PHP?

Вот запрос MySQL:

SELECT last_name FROM users ORDER BY last_name

Мы получаем все эти данные в PHP, а затем запускаем:

$prior = NULL;
do {
    $current = array_shift($results);
    assert($current >= $prior);
    $prior = $current;
} while ($current !== NULL);

В настоящее время это утверждение не выполняется для определенных входов. Можно ли добавить предложение COLLATE в запрос MySQL выше, чтобы абсолютно гарантировать утверждение PHP?


Материал, который я пробовал:

  • Приведенный выше код не работает для некоторых не-ASCII-входов
  • ORDER BY email COLLATE utf8_bin привело к COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'
  • Возможно, это дубликат Какая наилучшая сортировка для MySQL с PHP?, но это показалось более субъективным, я ищу конкретный ответ на конкретный проблема

Другие примечания:

Ответ 1

echo ('a' == 'A') ? 'a==A ' : 'a <> A ';
echo ('a' == 'á') ? 'a==á ' : 'a <> á ';

Оба вернулись <>, поэтому я вывел, что PHP действует как latin1_bin (или _bin любой кодировки).