I need to get the IDs around an ID with mySQL.
Example:
IDs in the table:
2, 4, 5, 9, 11, 15, 19, 22, 25
I need to know the 5 IDs around the ID 9, for example. The query should return:
4, 5, 9, 11, 15
Thanks!
People uses `` to surround field names and use '' to surround values. Is that true? Or the major reason to do so is because then we can put the code in a text file and import into the database. thank you. mysql.
To get the first and last record, use UNION. LIMIT is also used to get the number of records you want.
You can use UNION to get the previous and next record in MySQL. Insert some records in the table using insert command. Display all records from the table using select statement.
A possible solution would be to
SQL Statement
SELECT ABS(ID - 9), *
FROM MyTable
ORDER BY
ABS(ID - 9)
LIMIT 5
Edit (thx to ypercube for pointing out a possible flaw in this solution)
If the intent is to get 2 id's from the left and two id's from the right, the statement can be adjusted as follows
SELECT * FROM MyTable WHERE ID <= 9 ORDER BY ID DESC LIMIT 3
UNION ALL
SELECT * FROM MyTable WHERE ID > 9 ORDER BY ID ASC LIMIT 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With