Hello.


You're right. I haven't understood the problem properly. 





Terence <[EMAIL PROTECTED]> wrote:

> Wouldnt that only work for the current year? For example I was born on 

> 1970-08-25, "select id from members where birthday = now();" wouldnt 

> return my birthday if it was today. Or am I missing something new in 

> 5.0.11?

> 

> 

> 

> Gleb Paharenko wrote:

>> 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]

Reply via email to