I have a table like that
id | name |
---|---|
1 | qwe |
2 | asd |
3 | sdf |
4 | xcv |
5 | try |
and I need to select all rows "under" chosen name (i.e. name = 'asd'), and after that sort it by 'id' and limit to 2, so I'm seeking a result like:
id | name |
---|---|
3 | sdf |
4 | xcv |
I tried to select it as SELECT * FROM TableName WHERE name < 'asd' ORDER BY id DESC LIMIT 2
However, "name < 'asd'" only means the rows where name-value is less than 'asd', so I get nothing because there are no values less than 'asd'. In my case, I need to select all rows "under" 'asd' name.
CodePudding user response:
try like below
select id,name from table_name
where id > ( select id from table_name where name='asd')
order by id
limit 2
CodePudding user response:
SELECT *
FROM TableName
WHERE id > (SELECT id FROM TableName WHERE name = 'asd')
ORDER BY id DESC
LIMIT 2;