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)
- 1 回答
- 0 關(guān)注
- 98 瀏覽
添加回答
舉報(bào)