Хм. За обновлением ПО серверов что-то увлекся и забыл про mysql.
Запросик:
SELECT `pid`
FROM `post`
WHERE `gid` =1
AND pid >46
ORDER BY `pid` ASC
LIMIT 0, 1
EXPLAIN:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE post ref vindex,gid,navi navi 4 const 55 Using where; Using index; Using filesort
CREATE TABLE IF NOT EXISTS `post` (
`gid` int(11) NOT NULL,
`cid` int(11) NOT NULL,
`apid` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL,
`name` tinytext NOT NULL,
`text` longtext NOT NULL,
`orgtext` longtext NOT NULL,
`song` varchar(256) NOT NULL,
`nast` varchar(256) NOT NULL,
`hoch` varchar(256) NOT NULL,
`smtr` varchar(256) NOT NULL,
`date` datetime NOT NULL,
`editdate` datetime NOT NULL,
`coment` int(11) NOT NULL,
`trackback` int(11) NOT NULL,
`views` int(11) NOT NULL,
`sub` int(11) NOT NULL,
`ncom` tinyint(1) NOT NULL,
PRIMARY KEY (`apid`),
KEY `vindex` (`gid`,`pid`),
KEY `gid` (`gid`,`date`),
KEY `navi` (`gid`,`cid`,`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=167173 ;
Собственно что делать? Это запрос для кнопки "далее" при просмотре дневника. Ищем существующую запись с максимально низким ID от текущего и делаем на неё ссылку.
Ну соответственно есть такой же запрос в обратную сторону для кнопки "назад".
Need help!
Отредактированно Proger (27.10.2009 23:22:31)