高效方案:
那麼能不能一條sql語句實現批量更新呢?
用CASE WHEN
mysql並沒有提供直接的方法來實現批量更新,但是可以用點小技巧來實現。
UPDATE mytable SET
myfield = CASE id
WHEN 1 THEN 'value'
WHEN 2 THEN 'value'
WHEN 3 THEN 'value'
END
WHERE id IN (1,2,3)
這里使用了case when 這個小技巧來實現批量更新。
② mysql如何刪除資料庫中所有數據但是要保留表
刪除的辦法是執行truncat方法,只是不需要每次手動的輸入truncate命令進行刪除。
通過sql命令的方式生成所有的truncate語句並寫入到.sql腳本文件中,然後執行腳本即可完成刪除操作,並且保留了表結構。
生成truncate命令的sql語句為:
SELECTCONCAT('TRUNCATETABLE',TABLE_NAME,';')FROMinformation_schema.TABLESWHERETABLE_SCHEMA='test'intooutfile'/tmp/truncate_test.sql';。
然後將生成的.sql腳本拷貝到當前文件夾下面:
mv/tmp/truncate_test.sql$current_dir/。
然後執行.sql腳本將資料庫中所有表中數據刪除:
source$current_dir/truncate_test.sql。
注意:
在進行select....intooutfile......操作時,默認只能將文件寫入到tmp路徑下,可以不用將tmp文件夾下面的.sql腳本移動到當前文件夾下,直接在tmp路徑下執行.sql腳本即可。
(2)mysql資料庫刪除一列擴展閱讀:
常見的刪除資料庫表中數據的方法是通過delete或者truncate的方法進行刪除操作,如果刪除的是表中某一條或者部分數據的話適合用delete操作進行刪除,如果要刪除表中所有的數據的話,適合是同truncate進行刪除操作。
如果不需要保留資料庫中所有表的結構,那麼答案很簡單,執行命令dropdatabase資料庫名即可達到目的。
但是如果需要保留該資料庫中所有表的結構,只想刪除所有表中的數據,多執行幾次truncate可以達到。