Задать вопрос

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

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

Я ожидал что ресултат будет "0".
  • Вопрос задан
  • 897 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Тестировщик на Python
    9 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Merion Academy
    Базы данных с нуля
    2 месяца
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
Где-то это было описано... Хм. А, вот
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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы