It all depends on the type of the column that you are using for the comparison.
You can use -
SELECT *
FROM tbl_name
WHERE date_col = (CURRENT_DATE - INTERVAL 1 DAY)
for comparisons with a DATE column but it will not give the desired results with DATETIME or TIMESTAMP columns. The following will work with any MySQL date column (DATE, DATETIME, TIMESTAMP) but it is very inefficient as it will result in a full table scan to produce the results.
SELECT *
FROM tbl_name
WHERE DATE_FORMAT(date_col, '%Y-%m-%d') = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
This next example looks more is more efficient as it enables the use of indexes -
SELECT *
FROM tbl_name
WHERE date_col >= DATE_SUB(CURRENT_DATE, INTERVAL '24:00:00' HOUR_SECOND)
AND date_col <= DATE_SUB(CURRENT_DATE, INTERVAL 1 SECOND)
Hope this helps