Size: a a a

2020 April 24

ПД

Павлов Дмитрий in ru_mysql
Alexander
зачем все записи просматривать, у Вас же ограничение по дням... сумма по 100000 это не большая нагрузка.
ок, буду реализовывать этот вариант
но, теоретически, можно ли использовать временные таблицы, для формирования листа заказа пользователем, а потом из нее вносить в основную таблицу одним инсертом/апдейтом
источник

ПД

Павлов Дмитрий in ru_mysql
?
источник

A

Alexander in ru_mysql
можно, но не надо перекладывать на базу задачи приложения.
источник

V

Vlad in ru_mysql
Alexander
можно, но не надо перекладывать на базу задачи приложения.
+1
источник

ПД

Павлов Дмитрий in ru_mysql
согласен, спасибо!
источник

A

Alexey in ru_mysql
Ребят всем привет.
есть таблица comments с данными типа
id|comment|item_id
нужно взять 20 последних записей с разными item_id
на сервере стоит [ONLY_FULL_GROUP_BY ]

мой запрос работает не верно:
SELECT ANY_VALUE(id) as id, ANY_VALUE(comment)as comment, item_id FROM comments GROUP BY item_id HAVING MAX(id) ORDER BY id DESC LIMIT 20
источник

MN

Max N. in ru_mysql
А че ANY_VALUE в селекте? Почему не MAX?
источник

A

Alexey in ru_mysql
а результат одинаковый
источник

A

Alexey in ru_mysql
+ такой запрос отрабатывает за 8 секунд, что мега долго
источник

MN

Max N. in ru_mysql
ANY_VALUE возьмет любое значение группы, MAX - максимум
источник

A

Alexey in ru_mysql
не берет максимум
источник

MN

Max N. in ru_mysql
-_-
источник

A

Alexey in ru_mysql
сори
источник

A

Alexey in ru_mysql
берет ))
источник

A

Alexey in ru_mysql
действительно  SELECT MAX(id) as id, ANY_VALUE(item_id) as itemid FROM comments GROUP BY itemid ORDER BY id DESC
источник

A

Alexey in ru_mysql
так нормально
источник

MN

Max N. in ru_mysql
ANY_VALUE нужен тупо чтобы фулл груп бай мод для конкретного запроса убрать, в доке так и прописано
источник

А

Александр in ru_mysql
Alexey
Ребят всем привет.
есть таблица comments с данными типа
id|comment|item_id
нужно взять 20 последних записей с разными item_id
на сервере стоит [ONLY_FULL_GROUP_BY ]

мой запрос работает не верно:
SELECT ANY_VALUE(id) as id, ANY_VALUE(comment)as comment, item_id FROM comments GROUP BY item_id HAVING MAX(id) ORDER BY id DESC LIMIT 20
Запрос не верно написал и быстро он работать не будет, в нём всегда будет FUUL SCAN
Запрос можно написать согласно заданным условиям нужно взять 20 последних записей с разными item_id. но если таблица больная, будет работать долго, т.к. полное сканирование таблицы будет
источник

MN

Max N. in ru_mysql
И юзать его не очень желательно
источник

A

Alexey in ru_mysql
вот этот быстро отрабатывает:
SELECT MAX(id) as id, ANY_VALUE(item_id) as itemid FROM comments GROUP BY itemid ORDER BY id DESC
источник