2016-08-02 14 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 * secondText AS firstText、 'テキスト' AS(SELECT 'TEXT' FROM )AS tmp .... ' – 1000111

+0

ありがとう、それは解決しました! – Mosi

+1

@ 1000111答えてください! \ o / – Jakumi

答えて

1

ここ誤っ文の抽出:あなたが列に任意のエイリアスを与えていないので、このクエリは、このエラー

[Err] 1060 - Duplicate column name 'text'

を生成します

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

を。

ソリューション:列に

与えるエイリアス:

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