Hello.
Why don't you want to use just: select id from members where birthday = now(); See: mysql> show create table members\G; *************************** 1. row *************************** Table: members Create Table: CREATE TABLE `members` ( `id` int(11) NOT NULL auto_increment, `birthdate` date default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> select * from members; +----+------------+ | id | birthdate | +----+------------+ | 1 | 2004-02-29 | | 2 | 2005-02-28 | | 3 | 2005-08-24 | +----+------------+ mysql> select id from members where birthdate = now(); +----+ | id | +----+ | 3 | +----+ mysql> select now(); +---------------------+ | now() | +---------------------+ | 2005-08-24 20:27:20 | +---------------------+ 1 row in set (0.00 sec) mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 5.0.11-beta-debug-log | +-----------------------+ 1 row in set (0.00 sec) If you add an index on birthdate, you can avoid table scans. create index `birthdate` on members(birthdate); mysql> explain select id from members where birthdate = now()\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: members type: ref possible_keys: birthdate key: birthdate key_len: 4 ref: const rows: 1 Extra: Using where 1 row in set (0.00 sec) Pooly <[EMAIL PROTECTED]> wrote: > Hi, > > I would like to display a list of members who have their birthday a > given day (today for instance). > My idea is to store their birth date in a column, and then query the > table against the column. But the query would be like : > select id from members where MONTH(birthday) =3D MONTH(NOW()) AND > DAY(birthday)=3DDAY(NOW()) > but it would perform a entire table scan with that. > What would be your best strategy for that sort of query ? > And how would you deal with 29th of february ? > > --=20 > Pooly > Webzine Rock : http://www.w-fenec.org/ > -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.NET http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Gleb Paharenko / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]