MySQL DELETE 表別名問題
版本是mysql 5.6(5.5在這個問題上也一樣,已測試)
隨手做一個實驗(隨手拿的一臺機子,創表居然0.2s)
mysql> USE test;
Database changed
mysql> CREATE TABLE test(id int);
Query OK, 0 rows affected (0.21 sec)
mysql> INSERT INTO test VALUES (1);
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO test VALUES (2);
Query OK, 1 row affected (0.03 sec)
嘗試做使用別名的刪除操作:
mysql> DELETE FROM test a
-> WHERE a.id=1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a
WHERE a.id=1' at line 1
查了一下5.6的手冊:
語法如下,符合sql標準(sql標準也支援 DELETE * FROM table_name)
繼續往下翻:
發現官方給出了多表+表別名的DELETE語法。
此處用單表測試:
刪除成功。
mysql> DELETE a FROM test a
-> WHERE a.id=1;
Query OK, 1 row affected (0.04 sec)
mysql> SELECT * FROM test;
+------+
| id |
+------+
| 2 |
+------+
1 rows in set (0.00 sec)
當然還嘗試了一下第二種寫法,通過USING(語法很怪……)
mysql> DELETE FROM a USING test a
-> WHERE a.id=2;
Query OK, 1 row affected (0.03 sec)
同樣刪除成功。
作者公眾號(持續更新)
隨手做一個實驗(隨手拿的一臺機子,創表居然0.2s)
mysql> USE test;
Database changed
mysql> CREATE TABLE test(id int);
Query OK, 0 rows affected (0.21 sec)
mysql> INSERT INTO test VALUES (1);
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO test VALUES (2);
Query OK, 1 row affected (0.03 sec)
嘗試做使用別名的刪除操作:
mysql> DELETE FROM test a
-> WHERE a.id=1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a
WHERE a.id=1' at line 1
查了一下5.6的手冊:
語法如下,符合sql標準(sql標準也支援 DELETE * FROM table_name)
繼續往下翻:
發現官方給出了多表+表別名的DELETE語法。
此處用單表測試:
刪除成功。
mysql> DELETE a FROM test a
-> WHERE a.id=1;
Query OK, 1 row affected (0.04 sec)
mysql> SELECT * FROM test;
+------+
| id |
+------+
| 2 |
+------+
1 rows in set (0.00 sec)
當然還嘗試了一下第二種寫法,通過USING(語法很怪……)
mysql> DELETE FROM a USING test a
-> WHERE a.id=2;
Query OK, 1 row affected (0.03 sec)
同樣刪除成功。
作者公眾號(持續更新)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1789583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL不支援DELETE使用表別名?MySqldelete
- delete 語句帶別名問題.delete
- MySQL資料庫delete資料時,不支援表別名MySql資料庫delete
- Mysql 表名大小寫問題MySql
- mssql sqlserver update delete表別名用法簡介SQLServerdelete
- MySQL 中 DELETE 語句中可以使用別名麼?MySqldelete
- mysql 刪表引出的問題MySql
- mysql支援跨表delete刪除多表記錄MySqldelete
- MySQL Delete PHPMySqldeletePHP
- 面試題: 資料庫:delete和trancate刪除表記錄的區別面試題資料庫delete
- 如何提高MySQL DELETE 速度MySqldelete
- MySQL判斷表名是否存在MySql
- 未使用 `deleteLater` 而直接使用 `delete` 導致問題delete
- MySQL 問題MySql
- mysql 分組取每個組的前幾名的問題MySql
- MySQL查詢取別名報錯MySql
- mysql 5.7.11查詢分割槽表的一個問題MySql
- mysql.user表的資料準確性問題MySql
- 使用別名訪問MSSQL ExpressSQLExpress
- mysql 1130 問題MySql
- mysql表操作(alter)/mysql欄位型別MySql型別
- 問題No property 屬性名 found for type 類名
- MySQL事務的隔離級別與併發問題MySql
- mysql 轉義問題MySql
- mysql 遇到的問題MySql
- Mysql:常見問題MySql
- MySQL死鎖問題MySql
- 關於 maatwebsite/excel 匯出不能識別中文檔名稱的問題WebExcel
- 主題別名 - MQTT 5.0 新特性MQQT
- [轉載] 詳解 MySQL int 型別的長度值問題MySql型別
- 【轉載】詳解 MySQL int 型別的長度值問題MySql型別
- 關於mysql字元和數字型別轉換的問題研究MySql字元型別
- CV關於Mysql中ON與Where區別問題詳解buaMySql
- $RMQ$問題($ST$表)MQ
- delete和truncate刪除的區別delete
- 微信APP支付-簽名問題APP
- MySQL資料災難挽救之Delete\UpdateMySqldelete
- 解決Linux系統下MYSQL資料表大小寫敏感問題LinuxMySql
- MySQL優化篇系列文章(二)——MyISAM表鎖與InnoDB鎖問題MySql優化