#php #mysql
#php #mysql
Вопрос:
У меня есть моя таблица со ставками.
---- ----------- ---------- --------- -------------------------- ------
| id | auctionID | bidderID | amount | bidTime | pr |
---- ----------- ---------- --------- -------------------------- ------
| 5 | 3 | 3 | 1000000 | 2016-10-18 21:59:36.0000 | 25 |
| 6 | 4 | 1 | 100000 | 2016-10-20 23:29:12.0000 | 30 |
| 7 | 4 | 2 | 100000 | 2016-10-20 23:29:25.3352 | 25 |
| 8 | 4 | 3 | 500000 | 2016-10-20 23:30:09.0000 | 50 |
| 9 | 3 | 2 | 250000 | 2016-10-20 23:54:26.0000 | 25 |
| 10 | 3 | 1 | 5000000 | 2016-10-21 03:56:00.0000 | 60 |
---- ----------- ---------- --------- -------------------------- ------
Мне нужен вывод для одного AuctionID (на этот раз 3), первый приоритет — pr, второй — время подачи заявок.
SELECT * FROM table WHERE auctionID = 3 ORDER BY pr DESC, bidTime ASC;
---- ----------- ---------- --------- -------------------------- ------
| id | auctionID | bidderID | amount | bidTime | pr |
---- ----------- ---------- --------- -------------------------- ------
| 10 | 3 | 1 | 5000000 | 2016-10-21 03:56:00.0000 | 60 |
| 5 | 3 | 3 | 1000000 | 2016-10-18 21:59:36.0000 | 25 |
| 9 | 3 | 2 | 250000 | 2016-10-20 23:54:26.0000 | 25 |
---- ----------- ---------- --------- -------------------------- ------
Пока все хорошо.
Теперь мне нужно разделить этот выбор на выигрышные и невыигрышные ставки в зависимости от суммы. Допустим, максимальная общая сумма для аукциона 3 установлена равной 5500000. В этом случае ставка с id = 5 должна быть разделена пополам.
Пример вывода, который я ищу (выигрышные ставки против проигрышных ставок с разделением на требуемую сумму, в данном случае 5500000):
SELECT winningBids;
---- ----------- ---------- --------- -------------------------- ------
| id | auctionID | bidderID | amount | bidTime | pr |
---- ----------- ---------- --------- -------------------------- ------
| 10 | 3 | 1 | 5000000 | 2016-10-21 03:56:00.0000 | 60 |
| 5 | 3 | 3 | 500000 | 2016-10-18 21:59:36.0000 | 25 |
---- ----------- ---------- --------- -------------------------- ------
SELECT loosingBids;
---- ----------- ---------- --------- -------------------------- ------
| id | auctionID | bidderID | amount | bidTime | pr |
---- ----------- ---------- --------- -------------------------- ------
| 5 | 3 | 3 | 500000 | 2016-10-18 21:59:36.0000 | 25 |
| 9 | 3 | 2 | 250000 | 2016-10-20 23:54:26.0000 | 25 |
---- ----------- ---------- --------- -------------------------- ------
Я знаю, как это сделать с PHP / MySQL, но я ищу, как это сделать только в MySQL.
Спасибо
Комментарии:
1. mysql не может создавать строки из ничего. это то, что вам нужно будет сделать в коде на стороне клиента.
2. Вы должны отделить свое хранилище данных от своей бизнес-логики, это не должно быть сделано в MySQL.