【问题标题】:Error show when update using phpmyadmin使用 phpmyadmin 更新时显示错误
【发布时间】:2017-02-09 16:39:43
【问题描述】:

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

可能是什么原因?

【问题讨论】:

  • 尝试更新成员 SET refered = (SELECT COUNT(*) FROM user_details WHERE user_details.sponser=members.username)

标签: sql mariadb


【解决方案1】:

错误出现在

COUNT (*)
-----^

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

【讨论】:

    【解决方案2】:
    Try the below query 
    UPDATE members SET refered = (SELECT COUNT(*) FROM user_details 
    WHERE user_details.sponser=members.username)
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2018-03-15
          • 1970-01-01
          • 1970-01-01
          • 2019-10-25
          • 2014-08-22
          • 2020-04-16
          • 2017-09-08
          • 2017-04-21
          • 1970-01-01
          相关资源
          最近更新 更多