MySQL update ...set後的and寫法的邏輯
正常update語句update table_name set col1=xxx,col2=xxxx,col3=xxxx,col4=xx and col5=xxxx;
一眼看上去這個SQL真腦殘了,哪個開發寫錯了寫成and,其實不然....這是MySQL中特有的腦殘寫法... ...真是腦殘
二話不說,建立測試表
mysql> create table test1 (expression varchar(100),notes varchar(100)); Query OK, 0 rows affected (0.36 sec) mysql> insert into test1 values ('5','6'); Query OK, 1 row affected (0.02 sec) mysql> insert into test1 values ('1121','xxxx'); Query OK, 1 row affected (0.02 sec) mysql> insert into test1 values ('xxxx','111'); Query OK, 1 row affected (0.01 sec)
執行update set exp1='xxx' and exp2 ='mmm';
mysql> update test1 set expression='5' and notes = '6' ; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> select * from test1; +------------+-------+ | expression | notes | +------------+-------+ | 1 | 6 | | 0 | xxxx | | 0 | 111 | +------------+-------+ 3 rows in set (0.00 sec)
看到上方的邏輯其實是等價於如下:
mysql> update test1 set expression=(case when notes ='6' then 1 else 0 end); Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> select * from test1; +------------+-------+ | expression | notes | +------------+-------+ | 1 | 6 | | 0 | xxxx | | 0 | 111 | +------------+-------+ 3 rows in set (0.00 sec)
mysql中 and 是當做運算子"&&"
則 set column1=value1 and column2=value2 等價於 set column1=(value1&&column2=value2)即setcolumn1=0或1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2909051/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中UPDATE語句裡SET後使用AND的執行過程和結果分析MySql
- PostgreSQL,SQLServer邏輯增量(通過邏輯標記update,delete)同步到Greenplum,PostgreSQLSQLServerdelete
- Leetcode: 627 - UPDATE, SET, ifLeetCode
- mysql update join,insert select 語法MySql
- 看懂「www.google.com」背後的邏輯Go
- 使用 Promise 來改寫 JavaScript 的載入邏輯PromiseJavaScript
- MySQL:MGR 學習(2):Write set(寫集合)的寫入過程MySql
- 圖解MySQL邏輯備份的實現流程圖解MySql
- 《底層邏輯》讀後感
- MySQL提升筆記(1):MySQL邏輯架構MySql筆記架構
- 用後臺開發的邏輯理念學習VUEVue
- C-04.MySQL邏輯架構MySql架構
- MySQL筆記 10 條件邏輯MySql筆記
- Python寫業務邏輯的幾個編碼原則Python
- Mysql 分組排序的sql寫法MySql排序
- Neditor 2.0.0 釋出,移除後端程式碼,重寫上傳邏輯(Ajax)後端
- 藏在米哈遊「鹿鳴」背後的商業邏輯
- MySQL:MGR 學習(1):寫集合(Write set)MySql
- 理解ProcessFunction的Timer邏輯Function
- 掌握 Promise 的邏輯方法Promise
- MySQL的update語句避坑MySql
- 公司內部分享之mysql邏輯框架MySql框架
- MySQL與SQL的觸發器的不同寫法MySql觸發器
- Amazon Redshift簡化資料管道背後的技術邏輯
- 3.2.2的Model的快取邏輯快取
- MySQL升級WRITE_SET後的一次死鎖分析MySql
- 成為MySQL DBA後,再看ORACLE資料庫(六、邏輯儲存結構)MySqlOracle資料庫
- 幾道經典邏輯推理題,提高你的邏輯思考能力
- MySQL面試題,如何書寫 update 避免表鎖?MySql面試題
- mysql實現merge功能之DUPLICATE key UPDATE語法MySql
- MySQL Redo log頁內邏輯怎麼理解MySql
- MySQL-WHERE子句 以及 邏輯操作符MySql
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- Python中的邏輯表示式Python
- kubebuilder operator的執行邏輯UI
- 認清 React 的useState邏輯React
- JS 中的邏輯運算子JS
- 電商促銷後臺邏輯詳述