我正在查看某人在一個表中提交的內容與數據庫中的另一個表之間是否匹配。 我不知道如何設置它。什麼即時嘗試是匹配2 sql列如果=然後更新一個不同的列1
IF tableA column A = tableB column B then table A column C = Column C + 1.
我試過更新的方法,但似乎不適合我。任何幫助都會很棒。謝謝。
我正在查看某人在一個表中提交的內容與數據庫中的另一個表之間是否匹配。 我不知道如何設置它。什麼即時嘗試是匹配2 sql列如果=然後更新一個不同的列1
IF tableA column A = tableB column B then table A column C = Column C + 1.
我試過更新的方法,但似乎不適合我。任何幫助都會很棒。謝謝。
一般會是這樣:
UPDATE TABLE_A a JOIN TABLE_B b
ON a.join_col = b.join_col AND a.column_a = b.column_b
SET a.column_c = a.column_c + 1
的join_col
價值可能user_ID的,所以你只在TABLE_A
有關該更新的行同一用戶在TABLE_B
中具有相同的值。
我想你可以在mysql中做到這一點:
UPDATE TableA a, TableB b
SET a.ColumnC = ColumnC + 1
WHERE a.ColumnA = b.ColumnB;
這會更新TableA中的所有行,其中a.ColumnA = b.ColumnB - 即使它們來自不同的用戶。在這種情況下,如果*任何*用戶的ColumnB等於該用戶的ColumnA,它將更新TableA - 我相信OP只想爲該特定用戶更新ColumnC。 – 2013-03-04 17:04:52
這段代碼是爲了顯示語法而呈現的僞代碼的轉換,@Ricky可以根據需要更改它。 – Bulat 2013-03-04 17:07:39
,如果這是你想要
update tableA set colA=(select (case when b.colB=colA then colC+1 else colC end) from tableB b)
不,這不會工作的原因很多。即使它沒有錯誤地執行,它也會更新錯誤的列。 – andr 2013-03-04 17:24:00
RTLM什麼? http://dev.mysql.com/doc/refman/5.0/en/update.html – 2013-03-04 16:58:26
左連接?內部聯接?這是否是psuedocode?你的查詢是什麼?結果如何?預期成績? – Hituptony 2013-03-04 16:59:13