Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Как можно сделать следующие на уровне базы?: Есть таблица id name ну жно сделать SELECT * FROM table ORDER BY id но так чтобы id с номерами 3,6,1,4 стояли первыми в том порядке котором я написал, а потом шли все остальные... двумя запросами сделать легко, сначало выбераем id IN (3,6,1,4), а потоом id NOT IN (3,6,1,4) А как это можно сделать одим запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 12:11 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 12:14 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 12:21 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
sourcerчтобы id с номерами 3,6,1,4 стояли первыми в том порядке котором я написал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 12:51 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM table ORDER BY case when id in (1,3,4,6) then 0 else id end этот метод хорош но он немного не корректно работает если ему дать SELECT * FROM table ORDER BY case when id in (21,20,19,18) then 0 else id end то он сортерует следующим образом 18,20,21,19 а потом вё остальное... почему так непойму... второй метод который предложили рабоатет но блин слишком грамостский у меня будут тысячи таких исколючений и запрос может стать очень большим да и к тому же у меня id BIGINT прописывать все значения в зарпосе глупо Ктонибудь знает как поправить первый метод бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 13:53 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
сделать вторую табличку с нужным порядком сортировки (id, orderseq) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 13:59 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Табличку делать нельзя в том то идело что задача именно такая как я описал ничего прибавить не убавить нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 14:03 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
sourcer Ктонибудь знает как поправить первый метод бы?а первого метода как бы и не было. Было направление. На котором вы б уперлись в необходимость еще и сортировать внутри исключения. т.е. во что-то, вида 2-го способа. если исключений много - заведите вспомогательную таблицу. скажем - re_collate и по ее полю, скажем re_order сортируйте (свернув с ней left join-ом свою) , а уж потом - по id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 14:05 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 16:01 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
ZemA Код: plaintext 1. 2. 3. 4. 5. 6. 7. и нарваться на наличие в id в таблице отрицалова, всатвленного до кучи при вливе данных. Код: plaintext 1. 2. 3. 4. 5. 6. (<>, как и DESC в исходном - только потому, что 't'>'f' ('true' > 'false') ), хотя я, к примеру привык к True<False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 17:12 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
но все равно будет sourcer ... слишком грамостский у меня будут тысячи таких исколючений и запрос может стать очень большим да и к тому же у меня id BIGINT прописывать все значения в зарпосе глупо ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 17:15 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
st_sergно все равно будет sourcer ... слишком грамостский у меня будут тысячи таких исколючений и запрос может стать очень большим да и к тому же у меня id BIGINT прописывать все значения в зарпосе глупо ... этто да. от этаго никуда не десца. Наверно он свое сравнение написать хочет. Я б правда просто ф-ю один раз написал от bigint. Если заведомо знаем, что порядок исключений раз и навсегда задан. А уж по ф-ии можно и индекс построить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 17:21 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
смотрие я сдела вспомогательную временную таблицу CREATE TEMPORARY TABLE top (id bigint,count bigint); потом делаю запрос SELECT * FROM all LEFT JOIN top ON (all.id=top.id) ORDER BY top.count DESC Налицо лефт джойн... НО выходит следющие вверх выводятся элементы у которых нет связей all.id<->top.id и за ними в отсортированном порядке уже те у которых есть связи.. как бы сделать чтобы сначало выводились те у которых связи есть а потом у кого нет и отсортированные были по DESC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 18:12 |
|
||
|
Сортировка с исключением
|
|||
|---|---|---|---|
|
#18+
Пишем функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А затем сортируем по этой функции Код: plaintext 1. Если функция IMMUTABLE то по ней еще и индекс можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 18:27 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34228859&tid=2005843]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 410ms |

| 0 / 0 |
