使用 where 和 CONCAT 问题更新 Select

唐门

我试图在连接两列后用另一个表数据更新一个表它显示错误。

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法

表 1:订单 表 2:用户

我正在尝试name通过将字段与订单表中的字段进行比较来更新订单表字段user_id

user_id链接到用户表。我正在尝试连接first_name&last_name并更新name订单表。

UPDATE orders SET 
(name =
SELECT CONCAT(u.first_name, ' ', u.last_name) as full_name
FROM users u
WHERE u.first_name IS NOT NULL OR u.first_name <> '' );

情况是这样的。

如果user_id订单表中存在任何 id,它应该检查usersid并选择 & 连接first_name&last_name并更新订单表。

如果user_id订单表中没有,则该字段应更新为NONE.

通过查询来完成它对我来说很复杂。我可以在 PHP 中做到这一点,但不推荐。有人可以帮忙吗。

83

假设您在 orders 表中有一个 user_id 列要加入,您可以尝试以下操作:

UPDATE orders o SET o.name = 
   IFNULL((SELECT CONCAT(u.first_name, ' ', u.last_name) AS full_name 
           FROM users u 
           WHERE u.user_id = o.user_id 
           AND u.first_name IS NOT NULL 
           AND u.first_name <> ''), 'NONE');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章