第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL-在一個查詢中更新具有不同值的多行

MySQL-在一個查詢中更新具有不同值的多行

德瑪西亞99 2019-10-25 13:14:21
我試圖了解如何用不同的值更新多行,但我不明白。解決方案無處不在,但對我來說似乎很難理解。例如,將三個更新更新為1個查詢:UPDATE table_usersSET cod_user = '622057'    , date = '12082014'WHERE user_rol = 'student'    AND cod_office = '17389551'; UPDATE table_usersSET cod_user = '2913659'    , date = '12082014'WHERE user_rol = 'assistant'    AND cod_office = '17389551'; UPDATE table_usersSET cod_user = '6160230'    , date = '12082014'WHERE user_rol = 'admin'    AND cod_office = '17389551'; 我讀了一個例子,但我真的不明白如何進(jìn)行查詢。即:UPDATE table_to_updateSET cod_user= IF(cod_office = '17389551','622057','2913659','6160230')    ,date = IF(cod_office = '17389551','12082014')WHERE ?? IN (??) ;如果在WHERE和IF條件中存在多個條件,我還不太清楚如何執(zhí)行查詢。
查看完整描述

3 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊

您可以這樣操作:


UPDATE table_users

    SET cod_user = (case when user_role = 'student' then '622057'

                         when user_role = 'assistant' then '2913659'

                         when user_role = 'admin' then '6160230'

                    end),

        date = '12082014'

    WHERE user_role in ('student', 'assistant', 'admin') AND

          cod_office = '17389551';

我不了解您的日期格式。日期應(yīng)使用本機(jī)日期和時間類型存儲在數(shù)據(jù)庫中。


查看完整回答
反對 回復(fù) 2019-10-25
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗 獲得超18個贊

MySQL提供了一種更具可讀性的方法,可以將多個更新組合到一個查詢中。這似乎更適合您描述的場景,更容易閱讀,并且避免了那些難以解開的多重條件。


INSERT INTO table_users (cod_user, date, user_rol, cod_office)

VALUES

('622057', '12082014', 'student', '17389551'),

('2913659', '12082014', 'assistant','17389551'),

('6160230', '12082014', 'admin', '17389551')

ON DUPLICATE KEY UPDATE

 cod_user=VALUES(cod_user), date=VALUES(date)

假定user_rol, cod_office組合是主鍵。如果其中只有一個是PK,則將另一個字段添加到UPDATE列表中。如果它們都不是主鍵(這似乎不太可能),則此方法將始終創(chuàng)建新記錄-可能不是想要的。


但是,這種方法使準(zhǔn)備好的語句更易于構(gòu)建和更加簡潔。


查看完整回答
反對 回復(fù) 2019-10-25
?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊

您可以使用CASE語句來處理多個if / then方案:


UPDATE table_to_update 

SET  cod_user= CASE WHEN user_rol = 'student' THEN '622057'

                   WHEN user_rol = 'assistant' THEN '2913659'

                   WHEN user_rol = 'admin' THEN '6160230'

               END

    ,date = '12082014'

WHERE user_rol IN ('student','assistant','admin')

  AND cod_office = '17389551';


查看完整回答
反對 回復(fù) 2019-10-25
  • 3 回答
  • 0 關(guān)注
  • 816 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號