如何在单条MySQL查询中用CONCAT与变量批量更新shoptable的imgurl字段
正确的MySQL更新语句写法
你的SQL存在语法错误,MySQL的UPDATE语句中不能连续使用多个SET关键字,而且完全不需要通过用户变量中转,直接在SET里完成字符串拼接即可。
最简正确写法
直接将静态URL前缀与sku拼接后赋值给imgurl:
UPDATE shoptable SET imgurl = CONCAT('websitedomain.com/', sku);
如果一定要使用用户变量(不推荐,没必要)
如果坚持要用变量中转,正确的语法是在单条SET里用逗号分隔变量赋值和字段更新:
UPDATE shoptable s SET @IMGPATH = s.sku, @URL = CONCAT('websitedomain.com/', @IMGPATH), s.imgurl = @URL;
Node.js中调用的注意事项
因为是在Node.js中嵌入SQL,你可以用模板字符串来处理引号,避免转义麻烦:
const sql = `UPDATE shoptable SET imgurl = CONCAT('websitedomain.com/', sku);`; // 之后通过你的MySQL客户端执行这条SQL
内容的提问来源于stack exchange,提问作者IoT-Practitioner
相关产品推荐
相关产品推荐

