Почему при WHERE `d` = 0 выбирается строка со значением 'code: 404'?
`d` tinytext COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0',
Пишу запрос : SELECT * FROM `table` WHERE `d` = 0
выбирается строка со значением 'code: 404'
так не выбирается: SELECT * FROM `table` WHERE `d` = '0'
Почему?
Потому что вообще не надо сравнивать строки и числа. Если поле строковое - сравнивайте только со строкой. Хоть при этом происходит и вполне задокументированное поведение.