Най-простият и най-добрият начин да получите вчерашната дата е:
subdate(current_date, 1)
Вашето запитване би било:
SELECT
url as LINK,
count(*) as timesExisted,
sum(DateVisited between UNIX_TIMESTAMP(subdate(current_date, 1)) and
UNIX_TIMESTAMP(current_date)) as timesVisitedYesterday
FROM mytable
GROUP BY 1
За любопитните, причината, че sum(condition)
ви дава броя от редове, които отговарят на условието, което иначе би изисквало тромав и многословен case
изявление, е, че в mysql булевите стойности са 1
за true и 0
за false, така че сумирането на условие ефективно брои колко пъти е вярно. Използването на този модел може да подобри вашия SQL код.