簡體   English   中英

使用非數字ID獲取MYSQL中的上一個和下一個記錄

[英]Get Previous and Next records in MYSQL with non-numeric ID

我正在嘗試在PHP / 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值。

希望能對您有所幫助! 如果您需要更多信息,請告訴我!

給它一個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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM