Os operadores de comparação (incluindo
<
e >
) "trabalha" com valores de string e também com números. Para MySQL
Por padrão, as comparações de strings não diferenciam maiúsculas de minúsculas e usam o conjunto de caracteres atual. O padrão élatin1
(cp1252 Europa Ocidental), que também funciona bem para inglês.
As comparações de strings farão distinção entre maiúsculas e minúsculas quando a ordenação do conjunto de caracteres das strings sendo comparadas fizer distinção entre maiúsculas e minúsculas, ou seja, o nome do conjunto de caracteres termina em
_cs
em vez de _ci
. Não faz sentido repetir todas as informações que estão disponíveis no MySQL Reference Manual aqui. Referência de Operadores de Comparação do MySQL:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html
Mais informações sobre conjuntos de caracteres/collations do MySQL:
http://dev.mysql.com/doc/refman/5.5/en/charset.html
Para responder às perguntas específicas que você fez:
P: esta é uma maneira possível de comparar strings no SQL?
R: Sim, tanto no MySQL quanto no SQL Server
P: e como ele age?
R: Um operador de comparação retorna um booleano, seja TRUE, FALSE ou NULL.
P: uma string menor que outra vem antes na ordem do dicionário? Por exemplo, a bola é menor que a água?
R: Sim, porque 'b' vem antes de 'w' na ordenação do conjunto de caracteres, a expressão
'ball' < 'water'
retornará VERDADEIRO. (Isso depende do conjunto de caracteres e no agrupamento .
P: e essa comparação diferencia maiúsculas de minúsculas?
R: Se uma comparação específica diferencia maiúsculas de minúsculas ou não, depende do servidor de banco de dados; por padrão, tanto o SQL Server quanto o MySQL não diferenciam maiúsculas de minúsculas.
No MySQL, é possível fazer comparações de strings especificando um agrupamento de conjuntos de caracteres que diferencia maiúsculas de minúsculas (o nome do conjunto de caracteres terminará em _cs em vez de _ci)
P: Por exemplo BALL
R: Por padrão, tanto no SQL Server quanto no MySQL, a expressão
'BALL' < 'water'
retornaria TRUE.