MySQL conditional INSERT


I am trying to do a conditional INSERT based on whether a product # already exists in my table.
Does anyone know how to do this?  I have tried several options, including the EXISTS and IF clauses, but it keeps throwing a syntax error.  Here's what I've tried so far:

INSERT INTO products ( productNum, price )
VALUES (12345, 100)
WHERE NOT EXISTS ( SELECT * FROM products WHERE productNum=12345 )


IF NOT EXISTS (  SELECT * FROM products WHERE productNum=12345 )
THEN INSERT INTO products ( productNum, price )
           VALUES (12345, 100)

Any ideas?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

try this

 INSERT INTO products ( productNum, price )
select 12345, 100
WHERE  NOT EXISTS ( SELECT 1 FROM products WHERE  productNum=12345 )

i don't have mySql handy to test but in Oracle I would do

INSERT INTO products ( productNum, price )
select 12345, 100 from dual
WHERE   NOT EXISTS ( SELECT 1 FROM products WHERE  productNum=12345 )
the "from dual" is optional in mySql

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
chaseiveyAuthor Commented:
Thanks man.  mySQL won't let you do a subquery on the same table, but the FROM DUAL worked like a charm.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
MySQL Server

From novice to tech pro — start learning today.