Mysql
 sql >> Database >  >> RDS >> Mysql

Confrontando le stringhe in PHP allo stesso modo di MySQL

La raccolta non ha nulla a che fare con l'archiviazione. È necessario impostare il set di caratteri per determinare la codifica di archiviazione. Le regole di confronto determinano le modalità di confronto e ordinamento. Le regole di confronto devono essere consapevoli del set di caratteri, ma per il resto non ha nulla a che fare con il set di caratteri.

Per rispondere alla tua domanda, puoi utilizzare iconv per traslitterare il testo, quindi confrontarlo. Ad esempio:

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

Questo è fondamentalmente ciò che MySql farà per te, anche se probabilmente è più veloce e potrebbe avere una tabella di confronto leggermente diversa rispetto a ISO-8859-1//TRANSLIT . Non ne sono del tutto sicuro.

Probabilmente sarebbe più facile usare il database, come altri hanno già suggerito.