使用phpmyadmin更新时显示错误

时间:2017-02-09 16:39:43

标签: sql mariadb

当我使用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`)'附近使用正确的语法

可能是什么原因?

4 个答案:

答案 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`