【问题标题】:ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;第 1 行的 ERROR 1064 (42000):您的 SQL 语法有错误;
【发布时间】:2016-06-13 09:21:07
【问题描述】:

我正在尝试匿名化我们moodle的一些学生。我正在使用mysql skript。 我得到了错误。谁能帮我解决这个问题。

ANZ=`mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "SELECT count(id) FROM $TABLE WHERE deleted=1 and not lastname='anonym';" --skip-column-names -B;`;

如果 [ $((ANZ)) -gt 0 ] 然后 mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "SELECT id, username FROM $TABLE WHERE deleted=1 and not lastname='anonym' and username like '%@%';" --skip-column-names -B > $文件; 猫 $文件 |在读取 TMP 时

    UserID=${TMP%   *};
echo $UserID >> $RES_FILE;
echo "User $UserID wird anonymisiert...";

mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "UPDATE $TABLE SET username='$A$UserID', email='a@nonym.de', firstname='$A', lastname='$A', icq='', skype='', yahoo='', aim='', msn='', phone1='', phone2='', institution='', department='', address='', city='', country='', url='', WHERE AND deleted =1 AND id=$UserID;";

    `mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "UPDATE mdl_message SET subject='Neue Mitteilung von anonym' WHERE useridfrom=$UserID;"`;
    `mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "UPDATE mdl_message_read SET subject='Neue Mitteilung von anonym' WHERE useridfrom=$UserID;"`;

    VNAME=`mysql -N -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "SELECT firstname FROM $TABLE WHERE id=$UserID;"`;
    NNAME=`mysql -N -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "SELECT lastname FROM $TABLE WHERE id=$UserID;"`;

     `mysql -u $USER -p$PASSWD -h$HOST -D $DATABASE -e "UPDATE mdl_event SET name='Meeting with your Student, anonym' WHERE name LIKE 'Meeting with your Student,%$VNAME $NNAME%';"`;
done
echo "Fertig!";

我有这个错误: 第 1 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“AND deleted =1 AND id=715”附近使用正确的语法

ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“AND deleted =1 AND id=3478”附近使用的正确语法。

请帮助我。我是 SQL 新手。

非常感谢您的帮助。

【问题讨论】:

  • 去掉url=''后面的逗号。还有一个AND whithout 和左侧的论点没有意义
  • 非常感谢您的考虑。它有帮助。

标签: mysql database


【解决方案1】:

你有

WHERE AND deleted =1 AND id=$UserID;

应该是:

WHERE deleted =1 AND id=$UserID;

WHEREdeleted 之间没有AND

【讨论】:

  • 非常感谢您的考虑。我更改了它,但不幸的是它没有帮助。
  • 嗨,是的。我又遇到了 ERROR。我输入了这一行:'mysql -u$USER -p$PASSWD -h$HOST -D $DATABASE -e "UPDATE $TABLE SET username=" '$A$UserID'", email='a@nonym.de', firstname='$A', lastname='$A', icq='', skype='', yahoo='', await=' ',msn='',phone1='',phone2='',机构='',部门='',地址='',城市='',国家='',url=''哪里删除=1 AND id='$UserID';"';我在第 1 行得到了这个 ERROR:ERROR 1064 (42000): You have an error in your SQL syntax;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“demo@XYZ.de.1456411291”附近使用正确的语法
  • 这是完全不同的情况,我很确定你会在不同的主题中问这个问题。通过快速查看不是username="'$A$UserID'",,而是username='$A$UserID',
  • 我将 username="'$A$UserID'" 更改为 username='$A$UserID' 但没有帮助。
  • 哪个变量给出文​​本demo@XYZ.de.1456411291
猜你喜欢
  • 2021-05-03
  • 2021-02-16
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多