web-dev-qa-db-fra.com

mise à jour de mysql basée sur le résultat sélectionné, comment combiner?

Voici deux instructions SQL. L'un est une instruction select et l'autre est une instruction update. Je veux les combiner.

Sélectionnez

SELECT * FROM test WHERE `id`='1'

Mise à jour

UPDATE test SET `select_count`=`select_count`+'1' WHERE `id`='1'

Sur la base de votre question, je pense que vous devez inclure la déclaration SELECT dans UPDATE statement:

Exemple de SQL ci-dessous:

create table test1
(ID int,
select_count int,
select_name varchar(50))

Insert into test1 values (1,1,'A')
Insert into test1 values (2,2,'B')

UPDATE test1
SET select_count = select_count + 1 
where select_count = (SELECT select_count FROM test1 WHERE select_name = 'A')

Une autre façon: si vous avez 2 tables (TableA et TableB)

UPDATE TableB 
SET TableB.value = (
    SELECT TableA.value 
    FROM TableA
    WHERE TableA.name = TableB.name
)
where TableB.value < X;
1
CR241