Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vergleichen von Zeichenfolgen in PHP auf die gleiche Weise wie MySQL

Die Sortierung hat nichts mit der Speicherung zu tun. Sie müssen den Zeichensatz festlegen, um die Speichercodierung zu bestimmen. Die Sortierung bestimmt, wie der Vergleich und die Sortierung erfolgen sollen. Die Sortierung muss zeichensatzbewusst sein, hat aber sonst nichts mit dem Zeichensatz zu tun.

Um Ihre Frage zu beantworten, können Sie iconv verwenden um den Text zu translittern und ihn dann zu vergleichen. Zum Beispiel:

function compare($s1, $s2) {
  return strcmp(
    iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
    iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}

Dies ist im Grunde das, was MySql für Sie tun wird, obwohl es wahrscheinlich schneller ist und möglicherweise eine etwas andere Kollationstabelle als ISO-8859-1//TRANSLIT hat . Da bin ich mir nicht ganz sicher.

Es wäre jedoch wahrscheinlich einfacher, die Datenbank zu verwenden, wie andere bereits vorgeschlagen haben.