Какая сортировка 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? но это казалось более субъективным, я ищу конкретный ответ на конкретную проблему

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

  • Если это имеет значение, этот столбец является latin1
  • Моя библиотека обложек PHP PDO – https://github.com/fulldecent/thin-pdo

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

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