2016-07-19 23 views
0

選擇到@variable我有這樣的查詢(在phpMyAdmin的MySQL):如何寫在mysql的

select id into @ci_id from cities where ci_name='Bandung'; 
INSERT INTO districts (dis_name, city_id) VALUES ('Batu Kuali',@ci_id); 

但爲什麼數據獲取數據庫雙?我只想插入一個數據。

注意:我不使用子查詢,因爲它會很長的查詢,我會執行非常多的數據。

回答

0

你並不需要使用子查詢或通過這種方式,只要使用insert select

INSERT INTO districts (dis_name, city_id) 
SELECT 'Batu Kuali', id 
FROM cities 
WHERE ci_name = 'Bandung'; 

SqlFiddle Demo

而且我覺得你的查詢就好了。

點擊這裏查看demo供您查詢。

0

試試這個:

declare ci_id int(20) default 0; 
    select id into @ci_id from cities where ci_name='Bandung'; 

    if LENGTH(@ci_id)>0 THEN 
       INSERT INTO districts (dis_name, city_id) VALUES ('Batu Kuali',@ci_id); 
    end if;