Я работаю над приложением laravel 4.2, которое запускалось на mysql 5.5. Это приложение перенесено на новый сервер, теперь запущен mysql 5.7.пустой запрос после обновления mysql от 5.5 до 5.7
После обновления некоторые запросы теперь возвращаются пустым.
Я считаю, что это как-то связано с sql_mode mysql 5.7.
Пример запроса
SELECT * FROM `table1` WHERE `col1` = 'val1' and
(SELECT count(*) FROM `table2`
WHERE `table2`.`table1_id` = `table1`.`id`
and `driver_id` = '39') >= 1 and `table1`.`id` = '86' LIMIT 1
Это запрос, который производит Laravel красноречив. Он возвращает пустой. На старом mysql 5.5 он возвращает одну строку, как ожидалось.
Если исправлено id из основного запроса, он работает.
... WHERE `table2`.`table1_id` = 86 ...
Как я уже говорил, я считаю это чем-то связанным с sql_mode.
Любые мысли?
"' "отсутствует перед таблицей 1 в разделе where. –
Извините, это была опечатка, когда я вставил вопрос. Это код Laravel Eloquent воспроизводится. Я просто изменил имена таблиц и колос для конфиденциальности. – cmancre
Если я изменил счетчик (*) "на" count ('table'.'id'), он будет работать. Звонит в колокол? – cmancre