首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql获取实际行号

mysql获取实际行号
EN

Stack Overflow用户
提问于 2011-09-25 00:16:17
回答 2查看 1.4K关注 0票数 1

我有一张桌子

代码语言:javascript
复制
mysql> select name from test;
+---------+
| name    |
+---------+
| foo     |
| bar     |
| foobar  |
| anton   |
| budi    |
| anton S |
+---------+
6 rows in set (0.00 sec)

如何知道第一个'anton‘是不是4号记录?

还有比这更快的查询吗?

代码语言:javascript
复制
select rank from (select @rownum:=@rownum+1 rank,p.name from test p, (SELECT @rownum:=0) r) a, (select * from test where name like 'anton%' limit 1) b where b.NAME = a.name
EN

回答 2

Stack Overflow用户

发布于 2011-09-25 00:18:39

不是的。

表中没有“行号”这样的东西;只有在由ORDER BY (或可能是GROUP BY)灌输的排序中。

表中的记录没有固有的顺序,即使没有ORDER BY子句,由于实现的原因,您可能经常看到它们以插入顺序出现。

如果您想使用插入顺序,请添加一个自动递增的ID列并使用它。

票数 4
EN

Stack Overflow用户

发布于 2011-09-25 00:22:40

拥有“行号”的唯一“快速”方法是添加一个“行计数器”列:)问题是当你删除一些记录时,你必须保持你的记录是最新的。如果没有DELETE操作(或者它们非常有限),列将是一个可接受的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7540198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档