views:

52

answers:

2

I have a query that requires a where statement on a calculated value:

select * from table where date( timestamp ) = ?

An explain on this query yields the expected ALL select type, which is not ideal. Using MySQL, what's the best way to optimize this?

+3  A: 

Another option might be to rewrite the query such that the calculations are all done on the other side of the equation. For example:

timestamp >= <some date> AND timestamp < <some date + 1>

In this query, "some date" would be midnight of that date.

Tom H.
+1  A: 
select * from table where  timestamp  = UNIX_TIMESTAMP('?');
MindStalker