
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.02.2016, 03:07
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
pid int(1) UNSIGNED cid int(11) UNSIGNED sort int(11) UNSIGNED Зная только pid и cid, как выбрать из БД следующую и предыдущую запись, относительно известной, но не по pic или cid, а по sort? Например SELECT * FROM database WHERE pid=$pid AND cid=$cid AND sort>(что тут должно быть?) ORDER BY sort DESC LIMIT 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 03:14
|
|||
|---|---|---|---|
Выбрать следующую запись не по primary |
|||
|
#18+
ysmhypnopid int(1) UNSIGNED cid int(11) UNSIGNED sort int(11) UNSIGNED Зная только pid и cid, как выбрать из БД следующую и предыдущую запись, относительно известной, но не по pic или cid, а по sort? Например SELECT * FROM database WHERE pid=$pid AND cid=$cid AND sort>(что тут должно быть?) ORDER BY sort DESC LIMIT 1 в известно записи есть известной СОРТ. вот его и поставьте. два запроса, отдельно для следуюшей, отдельно для предыдушей... ну или УНИОН. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 04:04
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
Спасибо. Я примерно и сам это понял. Интересно как бы это сделать на практике? В смысле - мой sql не самый лучший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 05:32
|
|||
|---|---|---|---|
Выбрать следующую запись не по primary |
|||
|
#18+
ysmhypnoСпасибо. Я примерно и сам это понял. Интересно как бы это сделать на практике? В смысле - мой sql не самый лучший. так вы уже почти все сделали Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 13:46
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
Да, но $sort то я не знаю ДО того, пока не обращусь к записи. Как я понимаю, нужно сначала выбрать известную запись по pid и cid, а потом сделать новый запрос, относительно sort из первого запроса. SELECT * FROM catalog_links WHERE sort>(SELECT MAX(sort) FROM catalog_links WHERE pid=$pid AND cid=$id) ORDER BY sort LIMIT 1 Попробовал так, но возвращает пустую строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 13:52
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
Код: sql 1. вам не нужен здесь sort, выбросьте ORDER BY sort DESC (и без DESC) LIMIT 1 даст вам то что надо - следующую и предыдущую записи относительно известных pid,sid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 14:24
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
Может я что-то не так сделал: SELECT * FROM catalog_links WHERE pid =3 AND cid =861 ORDER BY sort LIMIT 1 Возвращает как раз именно эту запись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.02.2016, 14:34
|
|||
|---|---|---|---|
|
|||
Выбрать следующую запись не по primary |
|||
|
#18+
если вам надо найти следующее и предыдущее уже без привязки к pid, sid - то ваш вариант правильный SELECT * FROM catalog_links WHERE sort>(SELECT MAX(sort) FROM catalog_links WHERE pid=$pid AND cid=$id) ORDER BY sort LIMIT 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1832100]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
356ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 634ms |

| 0 / 0 |
