是否可以從下表中選擇下一行?select next and prev id order not logical
Table foo
Values:
312
911
128 <-- prev
389 <-- current
124 <-- next
993
213
我不知道如何選擇這個原因的數字沒有按順序。
是否可以從下表中選擇下一行?select next and prev id order not logical
Table foo
Values:
312
911
128 <-- prev
389 <-- current
124 <-- next
993
213
我不知道如何選擇這個原因的數字沒有按順序。
如果您未指定訂單,那麼數據庫引擎根本不會訂購數據。因此無論您在特定記錄需要訂購後嘗試選擇。
可以使用MySQL HANDLER語法。該文件說,它僅與MyISAM
引擎雖然工作原理:
「第三個HANDLER ... READ語法取出從表中的一行在 自然行順序」
自然行的順序是按順序哪些行存儲在MyISAM 表數據文件中。
假設如下表:
CREATE TABLE `a` (
`a_col` int(10) unsigned NOT NULL DEFAULT '0',
`d_col` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`c_col` varchar(45) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (`a_col`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
數據如下:
mysql> select * from a;
+-------+---------------------+-----------+
| a_col | d_col | c_col |
+-------+---------------------+-----------+
| 0 | 2013-11-20 15:25:55 | nürnberg |
| 3 | 2013-11-11 00:00:00 | NULL |
| 4 | 2013-11-21 12:32:56 | adsf |
| 11 | 2013-11-21 12:33:04 | adsf |
| 17 | 2013-11-21 12:32:46 | adsf |
| 30 | 2013-11-21 12:33:11 | adsf |
| 861 | 2013-11-21 12:33:01 | adsf |
+-------+---------------------+-----------+
現在你可以打開一個處理程序:
mysql> handler a open;
Query OK, 0 rows affected (0.00 sec)
閱讀在任意行:
mysql> handler a read `PRIMARY` = (4);
+-------+---------------------+-------+
| a_col | d_col | c_col |
+-------+---------------------+-------+
| 4 | 2013-11-21 12:32:56 | adsf |
+-------+---------------------+-------+
1 row in set (0.00 sec)
閱讀接下來將以前由自然順序讀行:
mysql> handler a read `PRIMARY` NEXT;
+-------+---------------------+-------+
| a_col | d_col | c_col |
+-------+---------------------+-------+
| 11 | 2013-11-21 12:33:04 | adsf |
+-------+---------------------+-------+
1 row in set (0.02 sec)
等等:
mysql> handler a read `PRIMARY` NEXT;
+-------+---------------------+-------+
| a_col | d_col | c_col |
+-------+---------------------+-------+
| 17 | 2013-11-21 12:32:46 | adsf |
+-------+---------------------+-------+
1 row in set (0.00 sec)
沒有'自然'的秩序?像第一次來到等? (基本上是他們被插入的順序) – John
不,訂單可能會在您選擇的每個選擇上不同。 –
@jurgen這是不正確的,每次相同的選擇(不包括順序)不會有所不同。 – marekful