亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果從數據庫獲取數據不存在記錄,則需要插入到sql中

如果從數據庫獲取數據不存在記錄,則需要插入到sql中

PHP
大話西游666 2023-08-19 16:37:05
如果從數據庫獲取數據時記錄不存在,則需要插入到sql中,我嘗試這樣做:    INSERT INTO database.wp_usermeta(user_id, meta_key, meta_value)    SELECT (user_id, 'ur_form_id' , 210)        FROM database.wp_usermeta ORDER BY user_id DESC LIMIT 1    WHERE NOT EXISTS (SELECT user_id, 'ur_form_id' , 210        FROM v.wp_usermeta ORDER BY user_id DESC LIMIT 1);    但不行,工作分支說“這個職位無效”
查看完整描述

2 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

你的 SQL 有點亂;ORDER BY 會在 WHERE 之后


INSERT INTO database.wp_usermeta(user_id, meta_key, meta_value)

SELECT user_id, 'ur_form_id' , 210

FROM database.wp_usermeta

WHERE NOT EXISTS (SELECT 1 FROM v.wp_usermeta); 

ORDER BY user_id DESC LIMIT 1

您不需要內部排序依據 - 存在查詢只是用于確定 v.wp_usermeta 中是否存在任何行 - 它不需要排序。反過來,這會導致外部查詢僅在 v.wp_usermeta 中沒有行時才返回行,并且僅當表中已有行時才會插入行。如果表是空的,它將永遠是空的。如果不為空,則具有最高 ID 的用戶將與這些固定屬性重復。這真的是你想要的嗎?


如果您的需求是“查找database.wp_usermeta表中沒有'ur_form_id'/210鍵值對的所有用戶,并給他們一個”,它可能更簡單地表達為:


INSERT INTO database.wp_usermeta(user_id, meta_key, meta_value)

SELECT DISTINCT user_id, 'ur_form_id' , 210

FROM database.wp_usermeta

WHERE user_id NOT IN (SELECT user_id FROM database.wp_usermeta WHERE meta_key = 'ur_form_id' and meta_value = 210); 



查看完整回答
反對 回復 2023-08-19
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

ORDER BY 位于 WHERE 子句之后:


INSERT INTO database.wp_usermeta(user_id, meta_key, meta_value)

SELECT user_id, 'ur_form_id' , 210

FROM database.wp_usermeta 

WHERE NOT EXISTS (SELECT user_id, 'ur_form_id' , 210

                  FROM v.wp_usermeta 

                  ORDER BY user_id DESC 

                  LIMIT 1)

ORDER BY user_id DESC 

LIMIT 1;


查看完整回答
反對 回復 2023-08-19
  • 2 回答
  • 0 關注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號