|
|
|
Выбрать следующую запись не по 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:07 |
|
||
|
Выбрать следующую запись не по 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, 03:14 |
|
||
|
Выбрать следующую запись не по primary
|
|||
|---|---|---|---|
|
#18+
Спасибо. Я примерно и сам это понял. Интересно как бы это сделать на практике? В смысле - мой sql не самый лучший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 04:04 |
|
||
|
Выбрать следующую запись не по primary
|
|||
|---|---|---|---|
|
#18+
ysmhypnoСпасибо. Я примерно и сам это понял. Интересно как бы это сделать на практике? В смысле - мой sql не самый лучший. так вы уже почти все сделали Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 05:32 |
|
||
|
Выбрать следующую запись не по 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:46 |
|
||
|
Выбрать следующую запись не по primary
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. вам не нужен здесь sort, выбросьте ORDER BY sort DESC (и без DESC) LIMIT 1 даст вам то что надо - следующую и предыдущую записи относительно известных pid,sid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 13:52 |
|
||
|
Выбрать следующую запись не по primary
|
|||
|---|---|---|---|
|
#18+
Может я что-то не так сделал: SELECT * FROM catalog_links WHERE pid =3 AND cid =861 ORDER BY sort LIMIT 1 Возвращает как раз именно эту запись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 14:24 |
|
||
|
Выбрать следующую запись не по 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 14:34 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39181395&tid=1832100]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 474ms |

| 0 / 0 |
