VALUES() - Column Value for "ON DUPLICATE KEY UPDATE"

Q

How to obtain the inserting value of given column in the "ON DUPLICATE KEY UPDATE" clause using the VALUES() function?

✍: FYIcenter.com

A

VALUES(col) is a MySQL built-in function that returns the inserting value of a given column and use it in the "ON DUPLICATE KEY UPDATE" clause. For example:

CREATE TABLE MyTable (id INTEGER UNIQUE, count INTEGER);

INSERT INTO MyTable VALUES (1, 1) 
  ON DUPLICATE KEY UPDATE count = count+VALUES(count);

INSERT INTO MyTable VALUES (1, 1) 
  ON DUPLICATE KEY UPDATE count = count+VALUES(count);

INSERT INTO MyTable VALUES (1, 1) 
  ON DUPLICATE KEY UPDATE count = count+VALUES(count);

INSERT INTO MyTable VALUES (1, 1) 
  ON DUPLICATE KEY UPDATE count = count+VALUES(count);

SELECT * FROM MyTable;
  -- +------+-------+
  -- | id   | count |
  -- +------+-------+
  -- |    1 |     4 |
  -- +------+-------+

Reference information of the VALUES() function:

VALUES(col): val
  Returns the inserting value of the given column.

Arguments, return value and availability:
  col: Required. The column name referred in the INSERT statement.
  val: Return value. The inserting value of the given column.
  Available since MySQL 4.0.

 

Removed MySQL Functions

UPDATEXML() - Updating Child Element in XML

MySQL Functions for Miscellaneous Purposes

⇑⇑ MySQL Function References

2023-12-17, 208🔥, 0💬