有人可以看看这个并告诉我我会遇到什么语法问题吗?
UPDATE `oc_product` p LEFT JOIN 'oc_product_description' d on p.product_id = d.product_id SET p.image = "/catalog/tonerthumb.gif" WHERE d.description like '%toner%'
提前致谢。
答案 0 :(得分:0)
这看起来像是一个家庭作业问题,但由于我已经在评论中大部分回答了这个问题,所以我将继续将其移至实际答案并添加一些解释。
您的查询:
UPDATE `oc_product` p
LEFT JOIN 'oc_product_description' d
ON p.product_id = d.product_id
SET p.image = "/catalog/tonerthumb.gif"
WHERE d.description like '%toner%'
您遇到的主要问题是您在尝试分隔对象时使用单引号。背面刻度用于此。单引号用作字符串分隔符。在上面的评论中,我提到双引号对于字符串分隔符可能不正确,但在查找之后,您实际上可以在mysql中交替使用单引号或双引号,因此您可以忽略该位。你唯一真正的问题是单引号和后退。
为了正确形成您的查询,您只需要在查询的join子句中使用back-ticks替换单引号:
UPDATE `oc_product` p
LEFT JOIN `oc_product_description` d
ON p.product_id = d.product_id
SET p.image = "/catalog/tonerthumb.gif"
WHERE d.description like '%toner%'
虽然双引号可以起诉字符串分隔符,但正如我所提到的,在编写查询时最好保持一致,所以我会继续更改查询只是为了带来一些一致性:
UPDATE `oc_product` p
LEFT JOIN `oc_product_description` d
ON p.product_id = d.product_id
SET p.image = '/catalog/tonerthumb.gif'
WHERE d.description like '%toner%';
我也习惯用分号明确地结束所有查询。
答案 1 :(得分:0)
MySQL中的正确语法如下:
UPDATE `oc_product` p
LEFT JOIN `oc_product_description` d
ON p.product_id = d.product_id
SET p.image = '/catalog/tonerthumb.gif'
WHERE d.description like '%toner%';