mysql關(guān)于update的一道測試題
前段時間去面試看到了一個測試題
題目為:
表創(chuàng)建語句為:
CREATE TABLE ·test_table`{
id int(5) unsigned NOT NULL AUTO_INCREMENT,
a int(1) NOT NULL,
b int(1) NOT NULL DEFAULT 1
)ENGINE=INNODB;
然后將表中增加數(shù)據(jù)
INSERT INTO test_table SET a=0,b=1;
INSERT INTO test_table SET a=1,b=2;
INSERT INTO test_table SET a=2,b=3;
INSERT INTO test_table SET a=3,b=4;
請問執(zhí)行下面語句后的數(shù)據(jù)庫結(jié)果
UPDATE test_table SET a=1 AND b=1
平時在接觸開發(fā)的時候總是使用UPDATE TABLE SET A=1,b=1 WHERE id=1之類這樣語句,沒有接觸過前面這樣的題目
后來通過思考和查詢手冊發(fā)現(xiàn)UPDATE語句的列更新是可以跟表達式的
然后把語句轉(zhuǎn)化一下
UPDATE test_table SET a=(1 AND b=1)就豁然開朗了
然后再來分析這插入的四條語句
第一條a=0 b=1 通過表達式分析條件為真
同理第二、三、四條的條件表達式都為假
所以最后的更新結(jié)果為
id
a
b
1
1
1
2
0
2
3
0
3
4
0
4
bitsCN.com聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com