如何从mysql结果中选择第一个和最后一个数据行?

Kay*_*Kay 8 php mysql

SELECT * from User返回75个用户.是否可以选择第一个用户和第75个用户而不做while($row = mysql_fetch_assoc($result))?如何?

UPDATE

为了更清楚:我需要有SELECT *第一个和第75个用户才能做到这一点,while mysql_fetch_assoc所以ASC, DESC, LIMIT答案不是必需的.

Sau*_*aul 20

SELECT * from User LIMIT 1
UNION
SELECT * from User LIMIT 74,1
Run Code Online (Sandbox Code Playgroud)

编辑

@Kay:PHP在创建后无法更改结果集的内部顺序.

如果查询总是返回75行,那么访问第1和第75之前的唯一方法就是使用mysql_data_seek来移动内部结果指针:

$result = mysql_query('SELECT * from User');

mysql_data_seek($result, 1);
$row1 = mysql_fetch_assoc($result);

mysql_data_seek($result, 75);
$row75 = mysql_fetch_assoc($result);
Run Code Online (Sandbox Code Playgroud)

请注意,如果上面跟着a while,则必须将指针重置到合适的位置.


ale*_*lex 14

如果你可以对它进行排序,你可以.

Select * from User order by [something] asc limit 1
Run Code Online (Sandbox Code Playgroud)

Select * from User order by [something] desc limit 1
Run Code Online (Sandbox Code Playgroud)


Mic*_*sen 5

假设你有'id'作为主键,你需要最后一个(不是第75个)你可以尝试类似的东西:

SELECT * FROM User WHERE id IN ((SELECT min(id) FROM user b), (SELECT max(id) FROM user c)) 
Run Code Online (Sandbox Code Playgroud)