首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql返回特定的行号

Mysql返回特定的行号
EN

Stack Overflow用户
提问于 2009-12-31 19:01:00
回答 4查看 5.7K关注 0票数 2

我想查询数据库并返回特定的行号,例如1、10和25。

这是可能的吗,或者我需要做3个查询(或者1个查询并循环行,然后只输出我需要的那些)

使用php。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-31 19:07:55

如果有您需要的特定If,您可以简单地使用类似于..

代码语言:javascript
复制
SELECT XXX FROM table WHERE XXX_id IN (1, 10, 25) ORDER BY XXX

...to将这些行取回。但是,如果您只是想要任意的行数,那么就我所知,您将不得不使用多个查询。(或者使用PHP等来提取所需的行。)

出于兴趣,你想要达到什么目的?

票数 4
EN

Stack Overflow用户

发布于 2009-12-31 19:04:11

您需要使用limit clause:

对于第一行:

代码语言:javascript
复制
 select * from table limit 0, 1

对于第十行:

代码语言:javascript
复制
 select * from table limit 9, 1

第25行:

代码语言:javascript
复制
 select * from table limit 24, 1  

只有一个查询的解决方案:

如果你使用的是php,你可以使用:mysql_fetch_row

代码语言:javascript
复制
<?php
$result = mysql_query(" select * from table");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 1st
echo $row[9]; // 10th
    echo $row[24]; // 25th
?>
票数 2
EN

Stack Overflow用户

发布于 2009-12-31 19:36:31

如果您需要经常这样做(如果数据库很大),您还必须将行号(更具体地说,就是行id到编号的映射)存储在某个地方。

代码语言:javascript
复制
MyTable
-------
id
row_nr
...

并在每次删除条目时更新row_nr。

即,如果您删除带有id=10的条目,则必须

代码语言:javascript
复制
UPDATE MyTable SET row_nr = row_nr - 1 WHERE id > 10

在添加行时使用

代码语言:javascript
复制
INSERT INTO MyTable (whatever, row_nr)
VALUES ('thatever', (
SELECT MAX(MT2.row_nr)+1 FROM MyTable as MT2
))

--

然后你就可以使用

代码语言:javascript
复制
SELECT XXX FROM MyTable WHERE row_nr IN (1, 10, 25)

当选择东西的时候。

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

https://stackoverflow.com/questions/1984959

复制
相关文章

相似问题

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