|
|
|
| Есть таблица объявлений. Каждое объявление имеет свой id и уникальное поле weight для сортировки (чем вес больше тем выше других объявление отображается в списке при выводе). Каждое новое объявление должно иметь самый большой вес.
Пробовал вот так:
INSERT INTO `advert` VALUES ('', (SELECT MAX(adv_weight) FROM `advert`)+1,'Заголовок', 'Текст', NOW());
|
Не получается. Можно решить одним запросом? | |
|
|
|
|
|
|
|
для: durable
(17.07.2009 в 17:24)
| | чем не устраивает сортировка по id или по времени добавления/редактирования?
или вес ранее добавленных сообщений будет меняться? | |
|
|
|
|
|
|
|
для: Valick
(17.07.2009 в 17:27)
| | >или вес ранее добавленных сообщений будет меняться?
Даже если и так, первоначально этот самый вес спокойно можно инициализировать датой-временем.
Ну или unix_timestamp'ом. | |
|
|
|
|
|
|
|
для: durable
(17.07.2009 в 17:24)
| | А что это за первый параметр ' ' такой странный? | |
|
|
|
|
|
|
|
для: durable
(17.07.2009 в 17:24)
| | если каждое новое имеет самый большой вес, то зачем доп поле тогда?
сделали всю сортировку по первичному auto increment и всё | |
|
|
|
|
|
|
|
для: psychomc
(17.07.2009 в 17:52)
| | на момент добавления имеет.
Если вес менять можно, то первичный ключ - нельзя. | |
|
|
|
|
|
|
|
для: durable
(17.07.2009 в 17:24)
| | может так
INSERT INTO `advert` SELECT 0, MAX(adv_weight)+1, 'Заголовок', 'Текст', NOW() FROM `advert`;
|
| |
|
|
|
|
|
|
|
для: ride
(17.07.2009 в 18:02)
| | вообще говоря неправильно дергать на чтение таблицу, в которую пишешь. | |
|
|
|
|
|
|
|
для: Trianon
(17.07.2009 в 18:05)
| | буду знать...
тогда встречный вопрос: а если надо будет выбрать более одной записи? | |
|
|
|
|
|
|
|
для: ride
(17.07.2009 в 18:35)
| | Вес у ранее добавленных объявлений в последствии может меняться.
Первый парметр ' ' это поле auto_increment.
А Unix Timestamp будет уникальным в любом случее?
А рационально его использовать под вес? | |
|
|
|
|
|
|
|
для: durable
(18.07.2009 в 11:57)
| | >А Unix Timestamp будет уникальным в любом случее?
нет, конечно. А для Вас так критична уникальность веса? | |
|
|
|
|
|
|
|
для: Trianon
(18.07.2009 в 12:37)
| | В принципе если задуматься уникальность веса не критична =) | |
|
|
|
|
|
|
|
для: ride
(17.07.2009 в 18:35)
| | из той же таблицы?
делается сложным SELECT запросом. | |
|
|
|
|
|
|
|
для: Trianon
(18.07.2009 в 12:37)
| | да, из той же таблицы.
не совсем понял: в этом случае лучше сделать одним запросом:
insert into `table` select ... from `table`
|
?
или разбить на 2: сначала select, а потом insert? | |
|
|
|
|
|
|
|
для: ride
(18.07.2009 в 13:15)
| | >да, из той же таблицы.
Зачем такое может понадобиться?
insert into `table` select ... from ( select .. From `table`) as t | |
|
|
|
|
|
|
|
для: Trianon
(18.07.2009 в 13:21)
| | хм..а я думал, что такое решение необходимо только для update или delete... | |
|
|
|