php – MySQL:如何获取带行的序列号?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – MySQL:如何获取带行的序列号?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1520字,纯文字阅读大概需要3分钟。
内容图文
![php – MySQL:如何获取带行的序列号?](/upload/InfoBanner/zyjiaocheng/901/a2d59ea7576d4b739b25cc49b7ee0a7d.jpg)
如何在最低ID为#1且最高ID为#numberOfResults的情况下对结果进行编号
示例:如果我的表中只有3行.它的ID是24,87,112,它会像这样拉:
ID 24 87 112
Num 1 2 3
我想要这个的原因是,我的经理希望项目的编号类似于item1,item2等.我最初制作它所以它使用了ID,但他看到了像item24,item87,item112.他完全不喜欢它,并希望它们像item1,item2,item3.我个人认为这会导致问题,因为如果你要删除和添加项目,那么item2将不会总是引用相同的东西,并可能导致用户混淆.所以,如果有人有更好的主意,我想听听.
谢谢.
解决方法:
我同意关于不使用这样的编号方案的评论,如果这些数字将被用于除了带有数字的项目的简单有序显示之外的任何其他内容.如果数字实际上与某些东西联系在一起,那么这是一个非常糟糕的主意!
使用变量,并在SELECT语句中递增它:
SELECT
id,
(@row:=@row+1) AS row
FROM table,
(SELECT @row:=0) AS row_count;
例:
CREATE TABLE `table1` (
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
INSERT INTO table1 VALUES (24), (87), (112);
SELECT
id,
(@row:=@row+1) AS row
FROM table1,
(SELECT @row:=0) AS row_count;
+-----+------+
| id | row |
+-----+------+
| 24 | 1 |
| 87 | 2 |
| 112 | 3 |
+-----+------+
这个怎么运作
@row是用户定义的变量.必须在主SELECT语句运行之前将其设置为零.这可以这样做:
SELECT @row:=0;
或者像这样:
SET @row:=0
但将两个陈述联系起来很方便.这可以通过创建派生表来完成,这是这里发生的事情:
FROM table,
(SELECT @row:=0) AS row_count;
第二个SELECT实际上先运行.一旦完成,只需要为检索到的每一行递增@row的值:
@row:=@row+1
每次检索到行时,@ row值都会递增.无论访问行的顺序如何,它始终会生成一个连续的数字列表.所以它对某些东西很方便,对其他东西很危险……
内容总结
以上是互联网集市为您收集整理的php – MySQL:如何获取带行的序列号?全部内容,希望文章能够帮你解决php – MySQL:如何获取带行的序列号?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。