web-dev-qa-db-ja.com

選択した結果に基づくmysqlの更新、どのように組み合わせるか?

2つのSQLステートメントを次に示します。 1つはselectステートメントで、もう1つはupdateステートメントです。組み合わせたいです。

選択

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

更新

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

あなたの質問に基づいて、UPDATE statementSELECTステートメントを含める必要があると思います:

以下のサンプルSQL:

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')

別の方法:2つのテーブルがある場合(TableAとTableB)

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