Biker John
Biker John

Reputation: 2711

Mysql if entry exists

Is there a possibility to check if record exists using mysql?

rowName | number
----------------
dog     | 1
cat     | 2

For example:

If i have a variable $var = 'dog', which already exists in my database, i want the system to add +1 number to the dog row.

On the other hand, when i have, for example, variable $var='fish', which does not exist in my database, i want the system to insert new row 'fish' with number 1.

I am wondering if there is one query alternative to two different queries using php conditions. I assume it would be faster running only one mysql query.

Upvotes: 1

Views: 628

Answers (2)

Nono
Nono

Reputation: 7302

Try this:

// you can check record exists or not

SELECT EXISTS(SELECT rowName FROM table WHERE rowName="$var");

// you can make one query also

INSERT INTO table(`rowName`, `number`) VALUES ("$var", 1)
ON DUPLICATE KEY UPDATE `number` = `number`+ 1;

Upvotes: 1

invisal
invisal

Reputation: 11181

Please see this INSERT ... ON DUPLICATE KEY UPDATE. For example

INSERT INTO table (rowName, `number`) VALUES ('$var', 1)
  ON DUPLICATE KEY UPDATE `number` = `number` + 1;

Upvotes: 3

Related Questions