"Juan E Suris" <[EMAIL PROTECTED]> wrote:
> I need to do something similar to replace, but can't figure out how to do it.
>
> Here's my table:
> user varchar(15) PRI
> cnt int(11)
>
> I want to increment cnt for user if it exists, else insert a row with cnt=1. I tried
> the following, but mysql complains that I can't use the same table in the update and
> select:
>
> replace into table set user='someuser', cnt=(select cnt+1 from table where
> user='someuser')
>
> Can this be done (in 1 query, of course)?
From v4.1.0 MySQL supports INSERT .. ON DUPLICATE KEY UPDATE and you can write your
query as
INSERT INTO table VALUES('someuser', 1)
ON DUPLICATE KEY UPDATE cnt=cnt+1;
http://www.mysql.com/doc/en/INSERT.html
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Victoria Reznichenko
/ /|_/ / // /\ \/ /_/ / /__ [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]