Sql:select * FROM table where ID in (3,9,6);
After such a situation is taken out, in fact, the ID or by 3,6,9, sorted, but if we really want to press in the order of the inside of what to do? Can SQL be completed? Do you need to take it back and then foreach it?
Actually, it can.
Sql:select * FROM table where ID in (3,9,6) Order by field (id,3,9,6);
The order that comes out is the specified (3,6,9) order.
About the efficiency of this sort,
Some articles indicate:
FIELD (STR,STR1,STR2,STR3,...)
Returns the index (position) of Str in the STR1, str2, STR3, ... list. Returns 0 If Str is not found.
Sorting process: The ID of the selected record is searched in the FIELD list and returned to the location, sorted by position.
Such usage can lead to Using Filesort, which is a very inefficient sort method. This is not recommended unless the data changes frequently, or if there is a long cache.
Using the explain test results in a using Filesort.
It is recommended that you sort yourself in the program code.
MySQL in sort can also be sorted in the order in inside