第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

PHP MySQL Insert INTO...ON Duplicate

PHP MySQL Insert INTO...ON Duplicate

PHP
紅糖糍粑 2022-10-28 09:41:03
我需要在票表中不存在行時(shí)插入和/或在行存在時(shí)通過 1 個(gè)查詢進(jìn)行更新。我嘗試了以下方法,它沒有添加新記錄,也沒有增加現(xiàn)有記錄。$query_upsert = mysqli_query($mysqli,     "INSERT INTO tickets (        ticket_companyname,        ticket_ordernumber,        ticket_datetimedeliverydate,        ticket_ritech,        ticket_ticketstatus    )    SELECT         nextgenorder_companyname,         nextgenorder_ordernumber,        nextgenorder_deliverydate,        '$ticket_ritech',        '$ticket_ticketstatus'    FROM nextgenorders2     WHERE         nextgenorder_companyname LIKE CONCAT(SUBSTRING_INDEX('$nextgenorder_companyname', ' ', 1),'%')         AND nextgenorder_deliverydate='$nextgenorder_deliverydate'    ON DUPLICATE KEY UPDATE,         ticket_companyname='$ticket_companyname',         ticket_ordernumber='$ticket_ordernumber',         ticket_datetimedeliverydate='$ticket_datetimedeliverydate',         ticket_ritech='$ticket_ritech',         ticket_ticketstatus='$ticket_ticketstatus'    WHERE        ticket_companyname LIKE CONCAT(SUBSTRING_INDEX('$nextgenorder_companyname', ' ', 1),'%')         AND ticket_datetimedeliverydate='$nextgenorder_deliverydate'    )");你可以在 upsert 查詢中使用 WHERE 子句嗎?我有所有錯(cuò)誤,我沒有收到任何錯(cuò)誤。請幫忙。
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的查詢存在的問題和可能的改進(jìn):

  • 它有兩個(gè)WHERE子句:你只想要一個(gè),它應(yīng)該出現(xiàn)在SELECT子句之后

  • 您對 SQL 注入持開放態(tài)度,您應(yīng)該使用綁定參數(shù)

  • 您不需要在賦值右側(cè)重復(fù)參數(shù):相反,您可以使用VALUES語法

  • 另外我認(rèn)為您正在嘗試更新子句中的太多字段ON DUPLICATE KEY,我刪除了其中一些并讓那些我認(rèn)為相關(guān)的字段(本質(zhì)上,您不需要更新起作用的列來檢查沖突)

考慮:

INSERT INTO tickets (

    ticket_companyname,

    ticket_ordernumber,

    ticket_datetimedeliverydate,

    ticket_ritech,

    ticket_ticketstatus

)

SELECT 

    nextgenorder_companyname, 

    nextgenorder_ordernumber,

    nextgenorder_deliverydate,

    ?,                          --> query parameter for "ticket_ritech"

    ?,                          --> ... "ticket_ticketstatus"

FROM nextgenorders2 

WHERE 

    nextgenorder_companyname 

        LIKE CONCAT(SUBSTRING_INDEX(?, ' ', 1),'%') --> ... "nextgenorder_companyname"

    AND nextgenorder_deliverydate = ?               --> ... "nextgenorder_deliverydate"

ON DUPLICATE KEY UPDATE,

    ticket_ritech = VALUES(ticket_ritech)

    ticket_ticketstatus = VALUES(ticket_ticketstatus)


查看完整回答
反對 回復(fù) 2022-10-28
  • 1 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號