Use 'between' when searching for rows based on dates instead of using 'like'.
Reason: 'like' doesnt search using indexes so it might slow down your query.
$today = date('Y-m-d');
$firstDayMonth = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-date("d")+1, date("Y")));
examples:
-bad
(SELECT SUM(amount) from merchant_lead_order_charges WHERE merchant_lead_order_charges.date is between '" . date('Y-m') . "%')
-good
(SELECT SUM(amount) from merchant_lead_order_charges WHERE merchant_lead_order_charges.date between '" . $firstDayMonth . "' and '".$today."')
No comments:
Post a Comment