子查詢好像算是從 MySQL 5.x 版之後才開始有限度的支援,不過因為語法與主流不同所以還是要看官方文件來搞清楚。

因為幫人修改 ECShop 後台功能,要利用剛新增資料的自動編號欄位(action_id)所產生的值來作為之後進行新增資料的關聯欄位(parent_id)的值。

用程式處理當然相信大家都沒有問題的,但是可不可以用 MySQL 的子查詢功能來處理呢?

很簡單,具體的 SQL 語法如下:

1
2
3
4
5
6
7
INSERT INTO `ecs_admin_action`(parent_id,action_code)VALUES('0', 'currency');

INSERT INTO `ecs_admin_action`(parent_id,action_code)
SELECT action_id, 'currency_action1' FROM ecs_admin_action WHERE action_code = 'currency';

INSERT INTO `ecs_admin_action`(parent_id,action_code)
SELECT action_id, 'currency_action2' FROM ecs_admin_action WHERE action_code = 'currency';

詳細說明可參考 MySQL 官方文件