当我使用以下查询在数据库中使用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`