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資料庫中庫、表名、欄位的大小寫問題MySql資料庫
- mysql批次建表問題MySql
- Oracle 指定別名"A" or"a"造成的問題Oracle
- mysql 刪表引出的問題MySql
- mysql臨時表的問題MySql
- 一個關於c++字串處理和delete[]與delete差別的問題 (轉)C++字串delete
- MySQL建立表失敗的問題MySql
- mysql支援跨表delete刪除多表記錄MySqldelete
- 面試題: 資料庫:delete和trancate刪除表記錄的區別面試題資料庫delete
- mysql 5.X 在linux上,表名大小寫敏感問題解決辦法MySqlLinux
- 關於delete,drop,truncate的問題delete
- MySQL Delete PHPMySqldeletePHP
- delete 和 delete [] 的真正區別delete
- MySQL表名區分大小寫MySql
- Oracle delete資料後的釋放表空間問題的解決 --轉Oracledelete
- Oracle delete 高水位線處理問題Oracledelete
- mysql innodb 索引失效問題引起表級鎖MySql索引
- MYSQL建立多張表,相同表結構,不同表名MySql
- 【Mysql 學習】 MERGE表方面的問題(二)MySql
- rman 中delete 與delete force 的區別delete
- mysql 分組取每個組的前幾名的問題MySql
- MySQL 問題MySql
- MySQL查詢取別名報錯MySql
- MySQL修改資料型別的問題總結MySql資料型別
- 使用別名訪問MSSQL ExpressSQLExpress
- delete/truncate刪除資料索引空間問題delete索引
- Mysql 優化——分析表讀寫和sql效率問題MySql優化
- 問題No property 屬性名 found for type 類名
- R12報表輸出儲存檔名亂碼問題
- truncate delete drop 區別delete
- truncate delete 的區別delete