Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Porównywanie ciągów znaków w PHP w taki sam sposób, jak robi to MySQL

Zestawienie nie ma nic wspólnego z przechowywaniem. Musisz ustawić zestaw znaków, aby określić kodowanie magazynu. Porównywanie określa sposób porównywania i sortowania. Porównywanie musi uwzględniać zestaw znaków, ale poza tym nie ma nic wspólnego z zestawem znaków.

Aby odpowiedzieć na swoje pytanie, możesz użyć iconv transliterować tekst, a następnie go porównać. Na przykład:

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

To jest w zasadzie to, co MySql zrobi dla Ciebie, chociaż prawdopodobnie jest szybszy i może mieć nieco inną tabelę sortowania niż ISO-8859-1//TRANSLIT . Nie jestem tego do końca pewien.

Prawdopodobnie łatwiej byłoby jednak korzystać z bazy danych, jak już sugerowali inni.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić alert Security Advisor MySQL?

  2. Znajdź brakujące daty i dodaj je do wyniku - MySql

  3. Dodaj kolumnę klucza podstawowego do starej tabeli bez klucza głównego

  4. Wstawianie i łączenia MySQL

  5. Jaki jest najlepszy sposób na zaszyfrowanie/odszyfrowanie ciągu json?