2012-06-07 15 views
5

Pregunta: ¿Dónde puedo encontrar la precedencia de los caracteres al ordenar en MySQL, PHP, o simplemente en general en Linux y Windows OS?¿Cuál es la precedencia de los caracteres al ordenar en MySQL, PHP o simplemente en general?

Por ejemplo, todo el mundo sabe que un viene antes b cuando se realiza una ordenación ascendente en una cadena en MySQL. Pero, ¿y otros personajes? ¿El signo de dólar $ viene antes del asterisco *? ¿Hay un espacio antes de un signo de exclamación? etc ...

¿Qué dicta el orden de clasificación? ¿Utiliza valores ascii/UTF-8 subyacentes? ¿Es diferente para diferentes tecnologías?

tecnologías a considerar:

  1. Bases de datos - MySQL/SQL/SQLite/Oracle/etc
  2. Los lenguajes de programación (para funciones de cadenas de clasificación) - PHP/Javascript/ASP.NET/C#/Python/Rubí/Objective C
  3. OS (es decir, clasificación de archivos por nombre de archivo) - Windows/Linux/MacOS/iOS/Android
+1

En dbms se llama "intercalación" – zerkms

+1

Depende de la codificación. Los caracteres que no son letras o dígitos generalmente se ordenan por su valor numérico, que está definido (normalmente) por el estándar ASCII, el estándar Unicode o el estándar ISO-8859-1. – Linuxios

Respuesta

1
  1. Bases de datos - colaciones, si no hay cotejo se establece valores enteros de carácter
  2. programando los idiomas - local o un entero de valor carácter o función definida por el usuario (por lo general las 3 opciones están disponibles por defecto)
  3. OS - Locale
1

Los caracteres se representan como asignaciones de un tipo entero sin signo a un particu glifo lar. El mapeo particular está definido por el juego de caracteres.

Por lo tanto, cuando compara caracteres, realmente está comparando el número entero que representa el carácter en un juego de caracteres en particular.

p. Ej. Java compara String s en función de sus representaciones de Unicode. Source

1

En términos de la base de datos, esto se denomina secuencia de intercalación, y la mayoría de los juegos de caracteres tienen un valor predeterminado. Si está utilizando unicode, puede mirar aquí: http://www.unicode.org/reports/tr10/tr10-24.html

1

Se pone incluso más interesante cuando se consideran otros idiomas.

Ä y ö son letras con acentos en holandés y alemán, pero letras "reales" en el alfabeto sueco (después de Z, no entre A y B/O y L respectivamente).

Cuestiones relacionadas