|
|
|
| У меня есть некий список, который я сортирую по полю sort. Оно содержит числа (float), и позволяет не только делать сортировку, но и без гемороя вставлять новую позицию в любое место списка.
Но это всё - пока только идея :)
Все это я могу сделать - но тёмными способами. Хочу поинтересоваться, наверняка есть менее геморные методы: можно ли одним запросом получить ближайшее значение определенного поля (в большую или меньшую сторону - по выбору) от заданного? | |
|
|
|
|
|
|
|
для: Zilog
(17.02.2009 в 02:04)
| |
SELECT MIN(num) FROM tbl WHERE num > $spec
|
SELECT MAX(num) FROM tbl WHERE num < $spec
|
| |
|
|
|
|
|
|
|
для: Trianon
(17.02.2009 в 09:06)
| | Мне кажется это немного не то что хочет автор.
Речь не шла о минимальном или максимальном ближайшем значении, а о ближайшем значении как таковом если воспринимать БД как таблицу.
Но это смотря по какому полю сортировать....
без гемороя вставлять новую позицию в любое место списка
Я думаю весь геморой именно в этом... | |
|
|
|
|
|
|
|
для: Valick
(17.02.2009 в 13:04)
| | >Я думаю весь геморой именно в этом...
Нет, тут гемороя нет - ибо индекс по которому ведется сортировка - плавающее число. Впопрс в том, что надо получить индекс нижнего или вышестоящего поля, предварительно отсортировав эти поля по этому индексу. Как сделать это через задницу кучей запрсов - я знаю, но хочется уже по красивше сделать.
$index = SELECT index FROM table WHERE id=n
$destIndex = SELECT MIN(index ) FROM table WHERE index >$index
после чего старому полю надо будет присвоить новое значение.
вот примерно так | |
|
|
|
|
|
|
|
для: Valick
(17.02.2009 в 13:04)
| | >Речь не шла о минимальном или максимальном ближайшем значении, а о ближайшем значении как таковом если воспринимать БД как таблицу.
Да, именно так! Как его получить я пока не понял. | |
|
|
|
|
|
|
|
для: Trianon
(17.02.2009 в 09:06)
| | спасибо, а можно ли в одном запросе получить num одного элемента, и тот num что мы получаем в запросе выше? | |
|
|
|
|
|
|
|
для: Zilog
(17.02.2009 в 13:14)
| | вот тут помоему то что мне нужно.
http://www.sql.ru/forum/actualthread.aspx?tid=554150
может кто поможет разобраться с этими мегазапросами? | |
|
|
|