Я пытаюсь проверить запрос в тестовой среде, которая является следующимВыполнить этот запрос, не изменяя sql_mode
запрос: -
SELECT a.aggreatorid AS aggreatorid, '' AS txndesc, DATE_FORMAT(DATE(b.txndate),'%d/%m/%Y') AS txndate,
SUM(txncredit) AS txncredit, SUM(txndebit) AS txndebit
FROM walletmast a INNER JOIN wallettransaction b ON a.walletid=b.walletid
AND txndate BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY a.aggreatorid, DATE(b.txndate)
ORDER BY txndate DESC
Запрос бросает следующий
Ошибка: -
SQL Error (1055): 'digitalpurse.b.txnDate' isn't in GROUP BY
Запрос работает на моей локальной среде, но не на тестовой среде, после долгих поисков я обнаружил, что тестовая среда имеет sql_modes, которые не могут быть изменены для потока приложения и целей безопасности
SQL Mode: -
@@sql_mode |
+------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,
STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,
NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION |
есть ли способ, чтобы выполнить этот запрос, не меняя sql_mode? Сообщите мне, если какая-либо другая информация будет сохранена. Заранее благодарю вас: D
Возможный дубликат [Есть ли \ _value возможности для MySQL 5.6?] (Http://stackoverflow.com/questions/37089347/is-there-any-value-capability-for-mysql-5-6) – e4c5
@Strawberry сделал это, но данные, возвращаемые по запросу, неверны необходимость размещения этого вопроса – abhi314
Какую версию MySQL вы используете? Если это 5.7, вы можете использовать 'ANY_VALUE()'. – Barmar