Don't allow overlap date for a contest

Hi,
My table


CREATE TABLE IF NOT EXISTS contest (
  id int(10) unsigned NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  slug varchar(255) NOT NULL,
  description text,
  valid_from date NOT NULL,
  valid_to date NOT NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY unique_contest_title (title),
  UNIQUE KEY unique_contest_slug (slug)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


INSERT INTO contest (id, title, slug, description, valid_from, valid_to) VALUES
(1, 'my first cool contest', 'my-first-cool-contest', 'my desc', '2012-05-01', '2012-05-31');

What’s the query to know if a new contest overlap an old contest ?
I don’t want two or more contest in the same time.
By now I ended up with this simple query


SELECT id FROM pc_contest WHERE valid_from = '2012-05-10' OR valid_to = '2012-05-31'

and it seems to work but I’d like to know your opinion :slight_smile:

Bye

this should help…


SELECT COUNT( id ) AS num
FROM  contest
WHERE (
valid_to >=  '2012-05-10'
)
AND (
valid_from <=  '2012-05-28'
)

:slight_smile:

Ps
now I just realized what a silly query I did :open_mouth:

Just the last thing I take advance one post two queries :slight_smile:
How about this query to get the current contest
SELECT * FROM contest WHERE valid_from <= NOW AND valid_to >= NOW

what happened when you tested it? :wink:

it works fine but also the silly query worked well (at least at first sight) :stuck_out_tongue: