Eu tenho que assumir que você está usando o MySQL 5.x porque o MySQL 4.x não armazena espaços à direita em uma coluna VARCHAR.
Usando o padrão
=
operador no MySQL, como você indicou, os espaços à direita não são considerados:SELECT 'this' = 'this '
retorna VERDADEIRO No entanto,
LIKE
compara as strings caractere por caractere, portanto, os espaços à direita são significativos. SELECT 'this' LIKE 'this '
retorna FALSO. Ambos
=
e LIKE
pode não diferenciar maiúsculas de minúsculas, usando o agrupamento padrão. Use o COLLATE
cláusula para especificar o agrupamento se você precisar compará-los de maneira sensível a maiúsculas e minúsculas.