Comment: MySQL is just trying to cater to us scripting folk (Score 1) on 2009.02.25 17:18
perl -wle "print '111|1' == 111"
Granted, the perl example throws a warning, but it does evaluate that statement as true.
You may consider it a bug; others might consider it a feature. And if you were to change how "111|1" gets cast to a number, or return an error for comparing a varchar to a number, who knows what that would break/fix.
Incidentally, SQLite and PostgreSQL don't have this problem/feature.