Home >Backend Development >PHP Tutorial >【有满意回答会加分】PHPMyAdmin里在表的浏览页面下只要选一次主键排序,就不能再选无主键排序了

【有满意回答会加分】PHPMyAdmin里在表的浏览页面下只要选一次主键排序,就不能再选无主键排序了

WBOY
WBOYOriginal
2016-06-23 14:05:211045browse

我用的是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分。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn