我想查询数据库并返回特定的行号,例如1、10和25。
这是可能的吗,或者我需要做3个查询(或者1个查询并循环行,然后只输出我需要的那些)
使用php。
发布于 2009-12-31 19:07:55
如果有您需要的特定If,您可以简单地使用类似于..
SELECT XXX FROM table WHERE XXX_id IN (1, 10, 25) ORDER BY XXX...to将这些行取回。但是,如果您只是想要任意的行数,那么就我所知,您将不得不使用多个查询。(或者使用PHP等来提取所需的行。)
出于兴趣,你想要达到什么目的?
发布于 2009-12-31 19:04:11
您需要使用limit clause:
对于第一行:
select * from table limit 0, 1对于第十行:
select * from table limit 9, 1第25行:
select * from table limit 24, 1 只有一个查询的解决方案:
如果你使用的是php,你可以使用:mysql_fetch_row
<?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
?>发布于 2009-12-31 19:36:31
如果您需要经常这样做(如果数据库很大),您还必须将行号(更具体地说,就是行id到编号的映射)存储在某个地方。
MyTable
-------
id
row_nr
...并在每次删除条目时更新row_nr。
即,如果您删除带有id=10的条目,则必须
UPDATE MyTable SET row_nr = row_nr - 1 WHERE id > 10在添加行时使用
INSERT INTO MyTable (whatever, row_nr)
VALUES ('thatever', (
SELECT MAX(MT2.row_nr)+1 FROM MyTable as MT2
))--
然后你就可以使用
SELECT XXX FROM MyTable WHERE row_nr IN (1, 10, 25)当选择东西的时候。
https://stackoverflow.com/questions/1984959
复制相似问题