2013-08-28 41 views
0

我正試圖在PHP/MySQL中開發一個小型照片編目和存儲系統。使用非數字ID在MYSQL中獲取上一個和下一個記錄

CREATE TABLE `photos` (
    `picid` varchar(36) NOT NULL, 
    `uploaded` varchar(10) NOT NULL, 
    `picdesc` text NOT NULL, 
    `views` bigint(20) NOT NULL, 
    `albumid` varchar(36) NOT NULL COMMENT 'fkey albums', 
    `uploadedby` varchar(50) NOT NULL COMMENT 'fkey users', 
    `exif` longtext NOT NULL, 
    `album_protected` tinyint(1) NOT NULL default '0', 
    PRIMARY KEY (`picid`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

picid場是作爲主鍵的GUID:目前如下我的數據庫的結構。

我需要幫助創建一個SQL查詢,該查詢將返回先前在picid中傳入的記錄以及下一個記錄。我想我需要使用兩個查詢,但也許有人可以告訴我,否則。記錄按uploaded排序,這是一個UNIX TIMESTAMP值。

希望你能幫助!請告訴我,如果你需要更多的信息!

+1

http://stackoverflow.com/a/991218/2623144的可能重複 – XaxD

+1

看到這個http://stackoverflow.com/questions/17086267/mysql-next-previous-id-wih-cycling/17086521 #17086521 –

回答

0

給它一個auto_increment整數字段作爲主鍵,並將picid更改爲唯一。作爲獨特的,它將被編入索引,並且仍然可以用作查找。但是如果你想要在你的行中進行排序,你需要一個auto_increment字段,並且這些字段必須是MySql中的主鍵。

CREATE TABLE `photos` (
`rowid` int auto_increment primary key, 
`picid` varchar(36) NOT NULL UNIQUE, 
`uploaded` varchar(10) NOT NULL, 
`picdesc` text NOT NULL, 
`views` bigint(20) NOT NULL, 
`albumid` varchar(36) NOT NULL COMMENT 'fkey albums', 
`uploadedby` varchar(50) NOT NULL COMMENT 'fkey users', 
`exif` longtext NOT NULL, 
`album_protected` tinyint(1) NOT NULL default '0' 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
+0

謝謝,我會修改表格,並從那裏拿走:) – tip2tail

相關問題