我想从MySQL
表的特定行检索值,例如:如果我的表有5行,我想检索第二行的值。这样做有什么疑问。
答案 0 :(得分:3)
“我想检索第二行的值。”
这个问题对关系数据库没有意义。在关系数据库中,没有行顺序的内在概念,因此没有“第一行”或“第四行”或其他内容。
在关系数据库中,表应该有一个或多个键。密钥是不能使用NULL的列或其组合,并且对于任何不同的值组合最多具有一行。然后,您可以使用该键来检索行。
在行上强制执行特定订单可能是有意义的,之后您可以按顺序位置引用行。使用ORDER BY进行排序,然后是确定顺序的表达式列表,然后使用LIMIT子句指定要检索的结果的“切片”。
其他答案提到LIMIT,但省略了ORDER BY子句。这意味着您有零保证,无论现在返回什么,因为下次执行完全相同的查询时将返回行#x。
不应将行视为具有位置,而应考虑具有键的行,并使用它来检索特定行,如下所示:
SELECT ...
FROM table
WHERE column1 = value
或者如果你有一个复合键(键中有多个列),如下所示:
SELECT ...
FROM table
WHERE column1 = value1
AND column2 = value2
...
AND columnN = valueN
如果你真的还想使用头寸,请务必使用ORDER BY来下订单:
SELECT ...
FROM table
ORDER BY column1, ..., columnN
LIMIT <offset>, <count>
其中是指定序数位置的整数文字,是一个整数文字,指定从该位置开始获取的行数。
答案 1 :(得分:0)
您可以在下面的代码中使用LIMIT
子句(MySQL docu),但请注意,除非您应用某种排序(ORDER BY col
),否则输出的实际行可能会有所不同,因为SQL表中没有内部排序。
SELECT *
FROM yourTable
LIMIT 1,1
更好的解决方案是在表格中添加其他列id
,然后按id
选择。或者至少使用id
列进行排序,如前所述。