1 回答

TA贡献1784条经验 获得超7个赞
您的查询存在的问题和可能的改进:
它有两个
WHERE
子句:你只想要一个,它应该出现在SELECT
子句之后您对 SQL 注入持开放态度,您应该使用绑定参数
您不需要在赋值右侧重复参数:相反,您可以使用
VALUES
语法另外我认为您正在尝试更新子句中的太多字段
ON DUPLICATE KEY
,我删除了其中一些并让那些我认为相关的字段(本质上,您不需要更新起作用的列来检查冲突)
考虑:
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 关注
- 82 浏览
添加回答
举报