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

Другие заметки:

0

Решение

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector