Mysql按UPDATE状态选择项目。 [语法错误]

时间:2014-06-17 15:50:34

标签: php mysql sql

我正在尝试使用mysql查询。我不确定,也许没有这样的语法。或者也许有,但我不能正确使用。

无论如何,我的疑问是:

SELECT `email` FROM `user` WHERE `username`='testuser' AND 1 IN ( UPDATE `user` SET `lastcheck` = NOW() WHERE `username`='testuser' );

有两个“地方”的说法。首先是正确的用户,secound是关于lastcheck的更新检查。

我正在通过PhpMyAdmin sql页面测试它。系统发出此错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE `user` SET `lastcheck` = NOW() WHERE `username`='testuser' ) LIMIT 0, 30' at line 1

2 个答案:

答案 0 :(得分:2)

MySQL中没有可用于在UPDATE语句中执行SELECT语句的语法。

在一般情况下,MySQL存储函数是解决此问题的一种方法(即从存储函数中执行UPDATE语句),但这不符合您的具体情况,因为您已经试图修改已经在使用的表格。 (这是对MySQL存储函数的限制。)

要执行您尝试执行的操作,只需运行两个单独的语句:

UPDATE `user` SET `lastcheck` = NOW() WHERE `username`='testuser';
SELECT `email` FROM `user` WHERE `username`='testuser;

答案 1 :(得分:-1)

我发现您的查询存在一个问题。您不需要围绕字段名称或表名称引用。只是您期望包含在字段中的char字符串:

SELECT Email from user where Username = 'testuser'