sql >> Base de Datos >  >> RDS >> Mysql

Comparando cadenas en PHP de la misma manera que lo hace MySQL

La colación no tiene nada que ver con el almacenamiento. Debe configurar el conjunto de caracteres para determinar la codificación de almacenamiento. La intercalación rige cómo deben ocurrir la comparación y la clasificación. La intercalación debe tener en cuenta el juego de caracteres, pero de lo contrario no tiene nada que ver con el juego de caracteres.

Para responder a su pregunta, puede usar iconv para transcribir el texto y luego compararlo. Por ejemplo:

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

Esto es básicamente lo que MySql hará por usted, aunque probablemente sea más rápido y puede tener una tabla de clasificación ligeramente diferente a ISO-8859-1//TRANSLIT . No estoy completamente seguro de eso.

Sin embargo, probablemente sería más fácil usar la base de datos, como ya han sugerido otros.