測試表:
createtable
`test` (
`id`
int(11) not
null
auto_increment,
`name`
varchar(255) not
null,`
order`varchar(255)default
null
, primary
key(`id`) ) engine
=innodb auto_increment=
4default charset=utf8;
插入測試資料:
insertinto `bbkb_busticket`.`test` (`id`, `name`, `order`) values ('
1', '
張三', '0'
);insert
into `bbkb_busticket`.`test` (`id`, `name`, `order`) values ('
2', '
李四', '1'
);insert
into `bbkb_busticket`.`test` (`id`, `name`, `order`) values ('
3', '
王八蛋', '
2');
交換兩行中某個欄位的值:(將id=1、2的兩個order替換下)
updatetest t1
join
test t2
on (t1.id =
2and t2.id =1)
set t1.`order` = t2.`order`,t2.`order`=t1.`order`;
交換兩列中某兩列的值:(將id=1的name 和 order 交換一下)
update test t1,test t2 set t1.`name` = t2.`order`,t1.`order` = t2.`name` where t1.id = t2.id
一條Update語句實現兩列值的交換
趙老闆,前些日子去某軟體公司筆試去了,拿到試卷,第乙個題就是 用一條update交換兩列的值 當然表是給定的。這還不簡單,上去就要寫,可是寫不出來,交換值肯定要用乙個中間變數來儲存。左思右想,還是沒有想出來,放棄,做下乙個題。趙老闆回來問這個自稱是sql高手的高總,聽了以後我的頭腦也暈了,沒有思路,...
mysql一條語句update多條記錄
通常情況下,我們會使用以下sql語句來更新字段值 update mytable set myfield value where other field other value 但是,如果你想更新多行資料,並且每行記錄的各字段值都是各不一樣,你會怎麼辦呢?剛開始你可能會想到使用迴圈執行多條update...
檢視一條mysql語句的效能
mysql資料庫在5.0.37版本後新增了show profiles功能,可以分析出一條sql語句的效能。檢查資料庫是否支援show profiles功能 show variables like version 檢視profiles是否開啟 show variables like pro 開啟命令 ...