Писал sql запрос, нашёл ошибку в результатах.
Когда стал детально изучать, увидел косяк в case ... when .... До этого работал с Oracle, он бы такое не пропустил, а MySQL, видимо, кушает всё, что ему дают.
Вопрос - почему выражение select 'A' = 0 возвращает истину? MySQL видит в символе A 0-ю букву алфавита?
upd: посмотрел - любое выражение вида select 'some text' = 0 возвращает истину. MySQL как-то преобразует строку в число?
Как я понял это неявное преобразование типов. Вот примеры сравнивания чисел со строками в mysql.
Равно:
mysql> SELECT 1 = 0;
-> 0
mysql> SELECT '0' = 0;
-> 1
mysql> SELECT '0.0' = 0;
-> 1
mysql> SELECT '0.01' = 0;
-> 0
mysql> SELECT '.01' = 0.01;
-> 1
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости