2

こんにちは、私はまだ次のコードに苦労しています

INSERT INTO m4zbv_mt_cfvalues (cf_id, link_id,value) 
    SELECT 87,link_id,1
    FROM m4zbv_mt_links WHERE Upper(`link_name`) like'%#VMWARE APPLIANCE DEFAULT PASSWORDS%'
    WHERE NOT EXISTS(select cf_id, link_id from m4zbv_mt_cfvalues where cf_id=87 and link_id=m4zbv_mt_links.link_id)

このセクションは正常に機能します。

INSERT INTO m4zbv_mt_cfvalues (cf_id, link_id,value) 
    SELECT 87,link_id,1
    FROM m4zbv_mt_links WHERE Upper(`link_name`) like'%#VMWARE APPLIANCE DEFAULT PASSWORDS%'

m4zbv_mt_links.link_id最初の選択から値を渡す方法と、WHERE NOT EXISTS

助けてくれてありがとう

4

2 に答える 2

0

and代わりにwhere次のようにする必要があります。

INSERT INTO m4zbv_mt_cfvalues (cf_id, link_id,value) 
SELECT 87,link_id,1
FROM m4zbv_mt_links WHERE Upper(`link_name`) like'%#VMWARE APPLIANCE DEFAULT PASSWORDS%'
and NOT EXISTS
               (select cf_id, link_id 
                from m4zbv_mt_cfvalues 
                where cf_id=87 and link_id=m4zbv_mt_links.link_id)
于 2013-02-02T17:25:30.123 に答える
0

重複を避けることだけが目的の場合は、INSERT IGNORE (および WHERE NOT EXISTS 句を削除) を実行します。

于 2013-02-02T17:25:57.313 に答える