我下面的 sql 用于列出 10 天前添加的股票。Order by isnull(Price) 被使用,这样没有任何价格的股票仍然会被列出。
AddDate 和 Price 有一个索引。
SELECT Id, Price FROM tblStock
where AddDate >= date_sub(curdate(),interval 10 day)
order by isnull(Price), Price asc limit 50
Run Code Online (Sandbox Code Playgroud)
解释 sql 显示它没有使用价格指数。所以我试图改进查询并提出了以下 sql
SELECT Id, Price FROM tblStock
where AddDate >= date_sub(curdate(),interval 10 day)
and Price is not null
order by Price asc limit 50
Run Code Online (Sandbox Code Playgroud)
新的 sql 运行得更快,并且解释显示它使用价格索引,但问题是永远不会选择具有空值的价格。
寻找有关如何解决此问题的任何意见或建议。谢谢。