我用的是XAMPP v3.1.0 Windows版。
我發現用PHP插入記錄之後最後插入的記錄在PHPMyAdmin裡不是最後一條,就點了一下結果的表頭中的id,然後查詢結果就按id遞增排序了,上面的查詢語句也變成了這個:
SELECT *
FROM table
ORDER BY table.`id` ASC
LIMIT 0 , 30
修改的時候只能修改SELECT * FROM table這個部分,下面的修改不了。
而且點擊主鍵排序後面的那個下拉式清單裡的無業沒有反應,不能把ORDER BY子句去掉。
奇怪的是我把這個表匯出之後刪掉,之後在匯入進來還是有那個ORDER BY子句。
我有三個問題,第一個是怎麼去掉那條ORDER BY子句,第二個是用PHP插入的最後一條記錄在PHPMyAdmin裡查看的時候為什麼不是最後一條,第三個是不加ORDER BY的結果的順序是不是就是資料庫中的物理順序。
--------------------------------------------------
剛才我自己把那個東西恢複了,那個東西儲存在phpmyadmin這個資料庫中的pma_table_uiprefs表裡了,刪除介面出錯的表對應的記錄之後重啟服務就恢複了。那個表裡的BLOB檔案我看了,好像就是一些PHPMyAdmin的介面的配置,不知道刪了會不會出問題?去掉那個ORDER BY子句之後順序又亂了。
--------------------------------------------------
還有一些東西我沒說:
那個表的主鍵被我設定成自增主鍵了。在用PHP插入之前我匯入了一些資料,類似這樣:
1 xx
2 ss
3 rr
然後用PHP插入。多次插入之後是這樣的:
1 xx
2 ss
3 rr
4 ww
1 xx
2 ss
3 rr
5 ee
4 ww
1 xx
2 ss
3 rr
6 tt
5 ee
4 ww
但是我只匯入表的結構之後用PHP插入就正常了。但是插入的時候id不是從0開始的,而是一個比較大的數,應該是上次最後使用的id的下一個,這樣:
40 gg
41 ii
怎麼才能讓它從0開始?(或者是1?)
實在是不想浪費分,我問題比較多,分還是節省一點吧。如果有讓我滿意的回答的話我會加分的,如果能完全解決的話我會加80分,包括直接刪phpmyadmin資料庫中的那個表中的記錄會不會出問題。
回複討論(解決方案)
運行sql:
alter table '你的表名' AUTO_INCREMENT=1
前提是當前表資料為空白;
第一個是怎麼去掉那條ORDER BY子句
再點一次
第二個是用PHP插入的最後一條記錄在PHPMyAdmin裡查看的時候為什麼不是最後一條
是否看到是最後一條,取決於主鍵的值和排序方式
第三個是不加ORDER BY的結果的順序是不是就是資料庫中的物理順序
預設排序為主鍵升序
可以理解為物理順序
插入資料前執行
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
可使“自增”失效,但你需要自行保證主鍵唯一
命令
TRUNCATE TABLE 表名
可以清空表並使“自增”複位
第一個是怎麼去掉那條ORDER BY子句
再點一次
第二個是用PHP插入的最後一條記錄在PHPMyAdmin裡查看的時候為什麼不是最後一條
是否看到是最後一條,取決於主鍵的值和排序方式
第三個是不加ORDER BY的結果的順序是不是就是資料庫中的物理順序
預設排序為主鍵升序
可以理解為物理順序
插入資料前執行
SET SQL_MODE="NO_……
加了30分。