Size: a a a

2020 June 06

НА

Николай Алиферов... in MySQL
в базе данных всегда лежит последняя информацию, которую туда положили)
источник

ІК

Ігор Куцан in MySQL
Николай Алиферов
SELECT status FROM table WHERE order_id IN (2, 4)
давай так, забудем что там есть id. Есть только order_id, status. И по каждому ордер нужно достать последний статус.
источник

НА

Николай Алиферов... in MySQL
Ігор Куцан
давай так, забудем что там есть id. Есть только order_id, status. И по каждому ордер нужно достать последний статус.
в моём запросе выше только order_id и status )
источник

ІК

Ігор Куцан in MySQL
посмотри, там может быть несколько строк на каждый order_id
источник

ІК

Ігор Куцан in MySQL
ты указал id из того примера
источник

НА

Николай Алиферов... in MySQL
ага, понял. а зачем новый статус писать отдельной записью?)
источник

НА

Николай Алиферов... in MySQL
для логирования?
источник

ІК

Ігор Куцан in MySQL
да
источник

НА

Николай Алиферов... in MySQL
ща попробую сделать запрос) а вопрос твой звучит как: я хочу самую свежую запись по каждому order_id. сложность в том, что записи идут в самом разном порядке и их может несколько с разным order_id
источник

V

Vitaly in MySQL
Николай Алиферов
ща попробую сделать запрос) а вопрос твой звучит как: я хочу самую свежую запись по каждому order_id. сложность в том, что записи идут в самом разном порядке и их может несколько с разным order_id
самая свежая запись подразумевает что у записей есть временная метка
источник

НА

Николай Алиферов... in MySQL
Vitaly
самая свежая запись подразумевает что у записей есть временная метка
не обязательно, если ID автоинкремент стоит то самая свежая это MAX(id), при условии что запись в базу не отложенная
источник

НА

Николай Алиферов... in MySQL
Ігор Куцан
давай так, забудем что там есть id. Есть только order_id, status. И по каждому ордер нужно достать последний статус.
попробуй так SELECT MAX(id), order_id, status FROM products WHERE order_id IN (1, 3, 2) GROUP BY order_id;
источник

ІК

Ігор Куцан in MySQL
На статус будет ругатся, включена настройка only_full_group_by. Я уже так делал
источник

ІК

Ігор Куцан in MySQL
Выключить не вариант
источник

НА

Николай Алиферов... in MySQL
Не проблема SELECT order_id, status FROM products WHERE id IN (
   SELECT MAX(id) FROM products WHERE order_id IN (1, 3, 2) GROUP BY order_id
)
источник

НА

Николай Алиферов... in MySQL
от себя скажу, что лучше перепроектировать таблицу или увольняться оттуда))
источник

НА

Николай Алиферов... in MySQL
логирование можно сделать в отдельной таблице
источник

НА

Николай Алиферов... in MySQL
там по поводу создания таблицы вопрос был, можно так например CREATE TABLE tableName
(
   id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
   text NOT NULL,
   PRIMARY KEY (`id`)
) CHARACTER SET utf8 COLLATE utf8_general_ci;
источник

ІК

Ігор Куцан in MySQL
Николай Алиферов
логирование можно сделать в отдельной таблице
Оно  и лежит в отдельной таблице. За запрос благодарочка
источник

НА

Николай Алиферов... in MySQL
Ігор Куцан
Оно  и лежит в отдельной таблице. За запрос благодарочка
я имею ввиду логирование это как доп. таблица, а в основной таблице просто один ордер одна запись
источник