mysql 选择匹配的行以及后面的3行

edqdpe6u  于 2023-08-02  发布在  Mysql
关注(0)|答案(2)|浏览(117)

students有3列idnameclass
我想根据条件选择匹配的行,例如,如果学生的名字是Jhon,加上接下来的3行(没有任何条件),然后在一个查询中选择匹配的行。
经过研究,我下面的代码只返回1行,或者这不是我想要的方式:

SELECT * FROM `students` AS `parent`

INNER JOIN `students` AS `child`

WHERE `parent`.`name` = ? AND `child`.`id` > `parent`.`id`
 
ORDER BY `child`.`id` ASC LIMIT 3

字符串

**注意:**我使用的是PHP Prepared Statements。

xghobddn

xghobddn1#

我认为你可能需要将连接条件从>改为>=,并从子表中选择:

SELECT `child`.*
FROM `students` AS `parent`
INNER JOIN `students` AS `child` ON `child`.`id` >= `parent`.`id`
WHERE `parent`.`name` = ?
ORDER BY `child`.`id` ASC
LIMIT 4

字符串

vx6bjr1n

vx6bjr1n2#

使用一个子查询返回您在WHERE子句中需要的id

SELECT * 
FROM students 
WHERE id >= (SELECT id FROM students WHERE name = ?) 
ORDER BY id LIMIT 4;

字符串

相关问题