我正在尝试使用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
答案 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'