使用phpmyadmin更新时显示错误



当我使用以下查询在数据库中使用phpmyadmin更新列时

UPDATE members
SET `refered` = (SELECT COUNT (*)
                 FROM `user_details`
                 WHERE `user_details.sponser`=`members.username`
                )

它显示如下错误消息

#1064 - 您的 SQL 语法有误;请查看与您的 MariaDB 服务器版本对应的手册,了解在"*"附近使用的正确语法(从"user_details",其中"user_details.sponser"="members.username"("在第1行

可能是什么原因?

错误在

COUNT (*)
-----^

删除 COUNT(*) 之间的空格。

Try the below query 
UPDATE members SET refered = (SELECT COUNT(*) FROM user_details 
WHERE user_details.sponser=members.username)

Select 查询是否返回任何结果。如果是这样,结果是什么。看起来您的所有查询都在您正在使用的"单引号内,应该将其删除。例如,需要删除单引号。

UPDATE members
SET refered = (SELECT COUNT (*)
                 FROM user_details
                 WHERE user_details.sponser=members.username
                )

-- 上面的查询中没有单引号。 请将其从您的中删除。

你的问题的一部分,或者可能是整个问题,是 WHERE 子句。您已经对表名使用了反引号,这是正确的(或者,至少在这种情况下它是可选的;如果您的数据库名称或表名称具有MySQL保留名称或在其他方面不明确,则需要反引号(。但是,问题在于将数据库与表分开的点需要在反引号之外。所以你的 WHERE 子句应该看起来像这样:

WHERE `user_details`.`sponser`=`members`.`username`

相关内容

最新更新