假设我有一个包含以下列的表:id-1, id-2, col-1, col-2, col-3
这里,id-1是主键并且是自动递增的。 id-2是一个不同的id,不必是唯一的。该列中有多个具有相同ID的实例。 col-1,col-2,col-3只是必要的列。
我传递一个查询来从表中选择数据。
mysqli_query($connect, SELECT * FROM table WHERE id-2='some_specific_id')
它将返回多行。我想知道如何定位特定的行,比如第3行。
答案 0 :(得分:0)
使用LIMIT
获取您想要的内容:
SELECT * FROM table WHERE id-2='some_specific_id' LIMIT 2, 1;
或者,如果您想从数组中获取,请使用数组的第3个索引。
LIMIT
说明:以下说明了带有两个参数的LIMIT
子句语法:
SELECT
column1,column2,...
FROM
table
LIMIT offset , count;
让我们检查LIMIT
子句参数:
答案 1 :(得分:0)
首先,使用"
:
mysqli_query($connect, "SELECT * FROM table WHERE id-2 = 'some_specific_id'");
目标特定行?你的意思是限制获取的行?或者获得第3排?
要限制提取的行,您可以使用LIMIT
:
SELECT * FROM table WHERE id-2='some_specific_id' LIMIT 3
获得第三行:
SELECT * FROM table WHERE id-2='some_specific_id' LIMIT 2, 1
答案 2 :(得分:0)
虽然看起来你只是需要学习基本的SQL才能得到你的答案,但标题中仍然存在问题,这可能会吸引其他人的问题。答案就是这样:
Mysqli对此任务不太方便,因此我们将使用PDO。
如果您的查询要返回多行,并且您需要按编号解决其中一行(这无论如何都没有意义,但无论如何),请使用fetchAll()
方法:
$stmt = $connect->prepare("SELECT * FROM table WHERE id2=?");
$stmt->execute(['some specific id']);
$data = $stmt->fetchAll();
您将能够按数字从零开始按地址处理返回的行:
echo $data[0]['col1'];
但是,通过一些唯一的ID来处理返回的行更有意义。在这种情况下,只需在字段列表中添加此唯一字段fiset,然后使用特殊PDO street magic:
$stmt = $connect->prepare("SELECT id1, table.* FROM table WHERE id2=?);
$stmt->execute(['some specific id']);
$data = $stmt->fetchAll(PDO::FETCH_UNIQUE);
您将能够通过该唯一字段处理返回的行:
echo $data[$id1]['col1'];