MySQL как работает сравнение строк?

Помогите понять результат работа этого простого запроса:
SELECT 'a ' = 'a'; -- вернет "1"
если можно со ссылкам на объяснения.

Я ожидал что ресултат будет "0".
  • Вопрос задан
  • 845 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Где-то это было описано... Хм. А, вот
All MySQL collations are of type PAD SPACE. This means that all CHAR, VARCHAR, and TEXT values are compared without regard to any trailing spaces. “Comparison” in this context does not include the LIKE pattern-matching operator, for which trailing spaces are significant.

Для char, varchar и text оператором сравнения не учитываются пробелы справа и считается что их нет. LIKE - учитывает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexMaxTM
@AlexMaxTM
Странно что вы ожидали иного, это документированная фича - конечный пробел игнорируется. Хотите, чтобы этого не было надо использовать VARBINARY.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы