Los operadores de comparación (incluyendo <
y >
) "trabajan" con valores de cadena además de números.
Para MySQL
De forma predeterminada, las comparaciones de cadenas no distinguen entre mayúsculas y minúsculas y utilizan el juego de caracteres actual. El valor predeterminado es latin1
(cp1252 West European), que también funciona bien para inglés.
Las comparaciones de cadenas distinguirán entre mayúsculas y minúsculas cuando la intercalación del conjunto de caracteres de las cadenas que se comparan distinga entre mayúsculas y minúsculas, es decir, el nombre del conjunto de caracteres termina en _cs
en lugar de _ci
. Realmente no tiene sentido repetir toda la información que está disponible en el Manual de referencia de MySQL aquí.
Referencia de operadores de comparación de MySQL:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html
Más información sobre juegos de caracteres/colocaciones de MySQL:
http://dev.mysql.com/doc/refman/5.5/en/charset.html
Para responder a las preguntas específicas que hizo:
P: ¿Es esta una forma posible de comparar cadenas en SQL?
P: y como actua?
P: una cadena menor que otra viene antes en el orden del diccionario? Por ejemplo, ¿la pelota es menor que el agua?
'ball' < 'water'
devolverá VERDADERO. (Esto depende del juego de caracteres y en la colección .
P: y esta comparación distingue entre mayúsculas y minúsculas?
En MySQL es posible hacer comparaciones de cadenas especificando una intercalación de juegos de caracteres que distingue entre mayúsculas y minúsculas (el nombre del juego de caracteres terminará en _cs en lugar de _ci)
P: Por ejemplo BALL
devolvería VERDADERO. 'BALL' < 'water'