Optimizing a stored function call in SELECT and WHERE clauses

前端 未结 1 1917
温柔的废话
温柔的废话 2021-02-14 21:40

I have an SQL query with the following structure:

SELECT *, storedfunc(param, table.field) as f 
FROM table 
WHERE storedfunc(param, table.field) < value 
ORD         


        
相关标签:
1条回答
  • 2021-02-14 22:34

    Rewrite and test which one performs faster:

    SELECT *, storedfunc(param, table.column) AS f 
    FROM table 
    WHERE storedfunc(param, table.column) < value 
    ORDER BY f ;
    
    SELECT *
    FROM
      ( SELECT *, storedfunc(param, table.column) AS f 
        FROM table 
      ) AS tmp
    WHERE f < value 
    ORDER BY f ;
    

    In MySQL, you can even write like this (warning: not standard SQL syntax):

    SELECT *, storedfunc(param, table.column) AS f 
    FROM table 
    HAVING f < value 
    ORDER BY f ;
    
    0 讨论(0)
提交回复
热议问题