2016-07-24 14 views
0

いくつかの条件でmysqlの 'insert if'メカニズムを構築しようとしていました。MySQL - whereステートメントで<>を使用するときの構文エラー(insert into)

私はそれを構築するために、その後のトピック:MySQL INSERT IF (custom if statements)

全体のコードがあることである:

insert into qualityScore (adGroupID, keywordID, qualityScore, day, clientID) 
select 222, 212, 6, '2016-07-23', 5 
where (select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23') <> 5 

しかし、以下で少し問題があります:

(select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23') 

私はこの作品を単独で実行すると、そのようなものが返されます:

 QualityScore 
     ------------ 
     5 

これは期待した結果です。しかし、私は「<> 5」部分をコードに追加する場合、問題が存在する:

(select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23') <> 5 

これは、MySQLの1064構文エラーコードを返します。 私が知る限り、構文は正しいと思われ、私はこの問題につながる点を見つけることができません。

ご意見をお寄せください。ありがとう。

+0

A)あなたは、 '222、212、6、 '2016年7月23日' を選択した後' from'が欠落している5'とthe'where'前に、それはあなたのエラーですb)インナーセレクトが1行以上を返す場合に、さらにエラーが発生します(この内側のクエリーで何を達成したいのか不明ですが、常に1行だけであれば問題ありません) – Solarflare

+0

@ Solarflareちょっと説明してくれてありがとう。 'from'かどうかにかかわらず、クエリ全体が動作しています。実際には動作しませんが、エラーは出ません。しかし、私が言ったように、問題は内側のクエリです。 5を返しますが、この結果を '<> 5'部分と比較しません。 – Cem

+0

今後の参考として、常にエラー*メッセージ*を記述してください。 「正しい構文を近いものに使う*」というものはあなたには役に立たないかもしれませんが、パーサが文脈上無効なものに遭遇した場所に関する貴重な情報を実際に提供します。エラーで引用符で囲まれた文字列でなければ、メッセージは 'near '''で終わります(空文字列。これは、クエリ全体が解析されたが、トークンがそれ以上存在しないためパーサは信じられない違う)。 –

答えて

0

FROM句を使用しないでWHERE句を使用することはできません。テーブルなしでリテラルを選択するだけの場合は、ダミーテーブルDUALを使用します。

insert into qualityScore (adGroupID, keywordID, qualityScore, day, clientID) 
select 222, 212, 6, '2016-07-23', 5 
from DUAL 
where (select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23') <> 5 

DEMO

+0

まだ動作しません:( – Cem

+0

それは私のために働く、私はデモを追加しました – Barmar

+0

私は前にテーブル名に何か間違っていたと思います。今はすべてうまく動作し、デモと私は非常にありがとう本当に助けに感謝します。 – Cem

-1

day < #2016-07-23#

日付は、最初と最後に#を必要としてみます。

+0

ねえ、デイヴ。今の構文でうまく動作します。私は別の日付入力でそれを試してみました。 – Cem

+0

これは、別のDBMSについて話す必要があります。 MySQLはこれに '#'を使用しません。 – Barmar

関連する問題