当我使用phpmyadmin
在数据库中使用以下查询
UPDATE members
SET `refered` = (SELECT COUNT (*)
FROM `user_details`
WHERE `user_details.sponser`=`members.username`
)
它会显示如下错误消息
#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以便在第1行'*)FROM`user_details` WHERE`user_details.sponser` =`members.username`)'附近使用正确的语法
可能是什么原因?
答案 0 :(得分:0)
错误在
COUNT (*)
-----^
删除COUNT
和(*)
之间的空格。
答案 1 :(得分:0)
Try the below query
UPDATE members SET refered = (SELECT COUNT(*) FROM user_details
WHERE user_details.sponser=members.username)
答案 2 :(得分:0)
Select查询是否返回任何结果。如果是这样,结果是什么。看起来您的所有查询都在“单引号”中,您应该将其删除。例如,需要删除单引号。
UPDATE members
SET refered = (SELECT COUNT (*)
FROM user_details
WHERE user_details.sponser=members.username
)
- 上面的查询中没有单引号。请从你的网站上删除它。
答案 3 :(得分:0)
您的问题的一部分,或者整个问题,是WHERE子句。您已使用反引号作为表名,这是正确的(或者至少,在这种情况下它是可选的;如果您的数据库名称或表名具有MySQL保留名称,则需要它;或者否则是模棱两可的)。但问题是,将数据库与表分开的点需要在反引号之外。所以你的WHERE子句应该是这样的:
WHERE `user_details`.`sponser`=`members`.`username`