2016-08-02 85 views
1

爲了在表格('projects')中插入唯一的'project_title'值,我寫了一個如下所示的查詢。Mysql重複錯誤

INSERT INTO projects (projects.project_title, projects.description) 
SELECT * FROM (SELECT 'a title', 'a description') AS tmp 
WHERE NOT EXISTS (SELECT projects.project_title FROM projects WHERE projects.project_title = 'a title') LIMIT 1 

,直到進入兩個項目名稱和項目說明同一條目和查詢會是這樣也能正常工作:

INSERT INTO projects (projects.project_title, projects.description) 
SELECT * FROM (SELECT 'text', 'text') AS tmp 
WHERE NOT EXISTS (SELECT projects.project_title FROM projects WHERE projects.project_title = 'text') LIMIT 1 

現在,我得到這個錯誤:

[Err] 1060 - Duplicate column name 'text' 

如何擺脫這種重複錯誤?

+2

嘗試給別名列'... SELECT * FROM(SELECT '文本' AS使用firstText, '文本' AS secondText )AS tmp ....' – 1000111

+0

謝謝,它解決了! – Mosi

+1

@ 1000111讓它成爲答案! \ O / – Jakumi

回答

1

提取的錯誤在這裏的講話:

SELECT 
tmp.* 
FROM 
(
    SELECT 'text', 'text' 
) AS tmp; 

這個查詢會產生這個錯誤

[Err] 1060 - Duplicate column name 'text'

因爲你沒有給任何別名列。

解決方案:

給別名列:

SELECT 
    tmp.* 
FROM 
(
    SELECT 
     'text' AS firstText, 
     'text' AS secondText 
) AS tmp;