Anonymous 1566
The left string contains U+00AD "SOFT HYPHEN", while the right string does not.
<>https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=f61be0ccdd6903798ef0f3620a66e213
Why is the result "1" (true) on MySQL 8.0? What change was being introduced?
<>https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f61be0ccdd6903798ef0f3620a66e213
Top Answer
Jack Douglas
The default character set [changed in version 8.0.1](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html):
> …the default character set has changed from latin1 to utf8mb4.
MySQL compares two strings in a 'lazy' fashion, so for example the compare is [case insensitive by default](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_equal). The details vary by collation.
If you want to compare strings more precisely, you can do a binary compare, or chose a different collation:
<>https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f577f22097215291eb0e20063e8bce10