[英]Sort rows in database Mysql
我的数据库有很多条目,在这里有一些朋友的帮助下,我设法删除重复行, 删除行中的mysql数据库,但现在我不得不面对新问题,即未排序的行。
这是我的数据库示例
CREATE TABLE `my_table` (
`id` int(10) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`address` varchar(255) NOT NULL default '',
`phone` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `my_table` VALUES (784, 'Albert', 'EGYPT', '202020');
INSERT INTO `my_table` VALUES (21, 'John', 'USA', '984731');
INSERT INTO `my_table` VALUES (56, 'Albert', 'EGYPT', '343354');
正如您在id [784,21,56]
看到的那样,有什么办法可以使我成为
INSERT INTO `my_table` VALUES (1, 'Albert', 'EGYPT', '202020');
INSERT INTO `my_table` VALUES (2, 'John', 'USA', '984731');
INSERT INTO `my_table` VALUES (3, 'Albert', 'EGYPT', '343354');
id [1,2,3,4,....etc]
它,我知道ID的更改可能会在脚本本身中引起问题,因为它依赖于id来获取条目信息,但是由于它是新的,所以我需要对其进行排序1,2,3,4,.....等等。
如何在表格上放置自动增量呢?
CREATE TABLE `my_table` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL default '',
`address` varchar(255) NOT NULL default '',
`phone` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
然后,您只需要插入值而无需指定ID。
[编辑]
您也可以像这样对行进行排序, 而无需更改表结构中的任何内容
select @rownum:=@rownum+1 as rank, t.*
from my_table t, (SELECT @rownum:=0) r
order by rank;
我认为,如果您删除ID字段并重新创建(使用自动递增),这将解决您的问题。 但是我从来没有检查过,因此首先要备份您的数据库。
如果您确定要执行此操作,则可以确定删除id字段并再次添加(索引并使用自动增量)将对行进行重新编号。
不过,我不确定,因为这不是我做过的那种事情。 您确定要这样做吗? 如果编号奇怪,那有什么关系?
另外,不能保证MySQL会按照您想要的方式对行进行重新编号-可能会使它们混乱。
如果要按国家或其他顺序对它们进行排序,则必须使用一些PHP并逐行更新行,这并不像听起来那样难。
使用AUTO_INCREMENT
列:
CREATE TABLE `my_table` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL default '',
`address` varchar(255) NOT NULL default '',
`phone` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
然后插入:
INSERT INTO `my_table` VALUES ('Albert', 'EGYPT', '202020');
INSERT INTO `my_table` VALUES ('John', 'USA', '984731');
INSERT INTO `my_table` VALUES ('Albert', 'EGYPT', '343354');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.