|
|
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
Укажите путь! Есть таблица с записями товаров вида: create table products( prodid int(4) unsigned primary key auto_increment, description char(255), price float(4,2) unsigned ) prodid_|_description_|_price __1______text_1_____3.00 __2______text_2_____3.50 __3______text_3_____4.22 __4______text_4_____1.50 __5______text_5_____2.33 Нужно каким-то образом закрепить порядок выбора некоторых записей, то есть так, чтоб например за prod_id-3 была закреплена 1-я позиция, а за prod_id-1 закреплена 4-я позиция, то есть в результате должна быть такая последовательность: prod_id-3, далее на второй и третьей позиции записи в зависимости от сортировки (но не prod_id-1), prod_id-1, остальные записи так же в зависимости от сортировки... В таблице порядка 50 тысяч записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 11:42 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
А может зависти ещё столбец Position, в котором будет храниться позиция строки и уже его сортировать Order by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 11:50 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
позиция не должна быть закреплена за не "фиксированными" записями, потому на них должен влиять order by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 11:52 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
В соответствии с стандартом sql удинственный путь получить записи в определенном порядке (хоть в каком) это order by Во всех остальный случаях порядок записей в результате неопределен. так что ваша постановка задачи некорректна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 12:01 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
Кто бы спорил!!! Но должны же быть какие либо возможности сделать так, чтоб записи были в нужном мне порядке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 12:04 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
p.s. я не отказываюсь от order by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 12:05 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
mrMaRkp.s. я не отказываюсь от order by добавте поле Position [default null] - как вам уже советовали, у "фиксированных" записей проставляйте необходимое значение , у остальных по умолчанию NULL, далее order by position,prod_id (правда не помню как идет сортировка при NULL вроде должна NULL - убирать в конец) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 13:40 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
null попадает в зависимости от типа (по убыванию/возрастанию) - в первом случае в конце, во втором сначала, но это не то, т.к. записи с null значением не попадут между фиксированными, если между ними имеется "зазор" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 13:50 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
mrMaRknull попадает в зависимости от типа (по убыванию/возрастанию) - в первом случае в конце, во втором сначала, но это не то, т.к. записи с null значением не попадут между фиксированными, если между ними имеется "зазор" Ну извратиться то всегда можно :)) разбейте на два диапазона ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:45 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
не совсем так... нежелательно (точнее нельзя исходя из задачи) закреплять в базе позицию за "плавающими" записями, необходимо, чтобы остальные свободно сортировались по разным полям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:57 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
ORDER BY оперирует конкретными полями в запросе. Если это поле нельзя засунуть в таблицу или каким-то макаром расчитать - то тут уж, извините, ничего не получится - одного желания мало, что бы все выводилось в нужном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 15:53 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
mrMaRkне совсем так... нежелательно (точнее нельзя исходя из задачи) закреплять в базе позицию за "плавающими" записями, необходимо, чтобы остальные свободно сортировались по разным полям Ну вы батенька извращенец :)) ну попробуйте так что ли, хотя за детерминированность результата не ручаюсь :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 16:52 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
чуть чуть уточню ... пусть @FIELD_SORT - поле сортировки не фиксированных записей @ID_FIRST - ид верхней записи @ID_OTHER - ид еще одной записи которую нужно зафиксировать на позиции @N тогда запрос приобретает вид Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 17:10 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
небольшое уточнение: записей с фиксированной позицией может быть неопределенное количество, и зазор между ними как может так и не может быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 17:30 |
|
||
|
Порядок выбора записей из базы (не ORDER BY)
|
|||
|---|---|---|---|
|
#18+
mrMaRkнебольшое уточнение: записей с фиксированной позицией может быть неопределенное количество, и зазор между ними как может так и не может быть Ну я не волшебник определитесь что вам надо ... откуда посылаете запрос (на чем клиент ?) как (чем) определяются фиксированные записи и промежутки между ними (или позиции в текущей выборке)? перешлите 20 баксов на мой web money кошелек и завтра у вас будет решение .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 17:46 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32715356&tid=1854775]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 476ms |

| 0 / 0 |
