Sort by order of values in a select statement “in” clause in mysql

后端 未结 4 883
挽巷
挽巷 2020-11-28 07:24

I\'m selecting a set of account records from a large table (millions of rows) with integer id values. As basic of a query as one gets, in a sense. What I\'m doing us build

4条回答
  •  一向
    一向 (楼主)
    2020-11-28 08:10

    If your query is 60K, that's a sign that you're doing it the wrong way.

    There is no other way to order the result set than by using an ORDER BY clause. You could have a complicated CASE clause in your order by listing all the elements in your IN clause again, but then your query would probably be 120K.

    I know you don't want to, but you should put the values in the IN clause in a table or a temporary table and join with it. You can also include a SortOrder column in the temporary table, and order by that. Databases like joins. Doing it this way will help your query to perform well.

提交回复
热议问题