gpt4 book ai didi

更新用户配置文件时mysql语法显示错误

转载 作者:行者123 更新时间:2023-11-29 23:24:33 25 4
gpt4 key购买 nike

我正在尝试使用 sql 查询来更改 wp_usermeta 中的某些字段,当我放置此片段时:

 UPDATE wp_usermeta
SET meta_value = IF("meta_key" = 'first_name', '{firstname}', IF("meta_key" = 'last_name', '{lastname}', "meta_value"))
WHERE user_id =
(SELECT "user_id" FROM
(SELECT MAX("user_id") AS "user_id"
FROM wp_usermeta) AS `reg`)
AND ("meta_key" = 'first_name'
OR "meta_key" = 'last_name')

SQL 工作正常。但是当我想在此代码段中添加新的 meta_key 时,它会显示错误:

 UPDATE wp_usermeta
SET meta_value = IF("meta_key" = 'first_name', '{firstname}', IF("meta_key" = 'last_name', '{lastname}', IF("meta_key" = 'telephone', '{phone}', "meta_value"))
WHERE user_id =
(SELECT "user_id" FROM
(SELECT MAX("user_id") AS "user_id"
FROM wp_usermeta) AS `reg`)
AND ("meta_key" = 'first_name'
OR "meta_key" = 'last_name'
OR "meta_key" = 'telephone')

您的 SQL 语法中有一个错误 - ;检查与您的 MySQL 服务器版本相对应的手册,了解在 'WHERE

附近使用的正确语法

请帮我解决这个问题。我刚刚开始使用 MySQL,了解不多。

最佳答案

这是您的查询的开头:

UPDATE wp_usermeta
SET meta_value = IF("meta_key" = 'first_name', '{firstname}',
IF("meta_key" = 'last_name', '{lastname}',
IF("meta_key" = 'telephone', '{phone}', "meta_value"
)
)
-----------------------^

(优秀的程序员对格式化如此狂热是有原因的;它可以防止很多这样的错误。)

问题是您缺少右括号。您应该使用 case (标准 SQL)编写此代码:

UPDATE wp_usermeta
SET meta_value = (CASE WHEN meta_key = 'first_name' THEN '{firstname}'
WHEN meta_key = 'last_name' THEN '{lastname}'
WHEN meta_key = 'telephone' THEN '{phone}'
ELSE meta_value
END)
WHERE user_id = (SELECT user_id
FROM (SELECT MAX(user_id) AS user_id
FROM wp_usermeta
) reg
) AND
meta_key IN ('first_name', 'last_name', 'telephone');

除非确实必要,否则不要对列名称使用引号。如果必须的话,请更改名称,这样就不必这样做。

编辑:

您也可以将其写为:

UPDATE wp_usermeta
SET meta_value = (CASE WHEN meta_key = 'first_name' THEN '{firstname}'
WHEN meta_key = 'last_name' THEN '{lastname}'
WHEN meta_key = 'telephone' THEN '{phone}'
ELSE meta_value
END)
WHERE meta_key IN ('first_name', 'last_name', 'telephone')
ORDER BY user_id DESC
LIMIT 1;

关于更新用户配置文件时mysql语法显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com