Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL子查询,其中最后一个id是_Mysql_Sql_Subquery - Fatal编程技术网

Mysql SQL子查询,其中最后一个id是

Mysql SQL子查询,其中最后一个id是,mysql,sql,subquery,Mysql,Sql,Subquery,尝试我的第一个子查询,但似乎无法获得正确的语法,尝试了许多变体,不确定是否应该使用临时表。我以此为指导: 1064-您的SQL语法有错误;在第11行的“WHERE log.user_id=16AS attentiable”附近,查看与MySQL服务器版本对应的手册,以了解要使用的正确语法 SQL 请尝试下面的代码。在限额或订单条款之前应该在哪里- 你的陈述有问题。另外,您不需要IN,只需使用= 更重要的是,您根本不需要子查询,因为MySQL支持ORDER BY和LIMIT in UPDATE查询

尝试我的第一个子查询,但似乎无法获得正确的语法,尝试了许多变体,不确定是否应该使用临时表。我以此为指导:

1064-您的SQL语法有错误;在第11行的“WHERE log.user_id=16AS attentiable”附近,查看与MySQL服务器版本对应的手册,以了解要使用的正确语法

SQL

请尝试下面的代码。在限额或订单条款之前应该在哪里-


你的陈述有问题。另外,您不需要IN,只需使用=

更重要的是,您根本不需要子查询,因为MySQL支持ORDER BY和LIMIT in UPDATE查询:


应按如下所示进行更改

正确的SQL语法: 从表名中选择字段名,其中字段名=按字段名排序的值DESC限制结果数

UPDATE log 
SET log.out_datetime = NOW() 
WHERE log.log_id IN
(
   SELECT log_id FROM
   (
       SELECT log.log_id 
       FROM log 
       WHERE log.user_id = 16
       ORDER BY log.log_id DESC
       LIMIT 1
   )
AS tempTable
)

WHERE goes before The ORDER BYOMG谢谢我是一个新来点东西的人你需要额外的子查询吗?你是对的@minaterma,没有必要,我没有注意到它是额外的,因为乍一看我似乎有语法排序错误谢谢,我要试试这个…怀疑我把它弄得太复杂了,许多SQL语法都是新的:
UPDATE log 
SET log.out_datetime = NOW() 
WHERE log.log_id IN
(
       SELECT log.log_id 
       FROM log 
       WHERE log.user_id = 16 
       ORDER BY log.log_id DESC
       LIMIT 1
)
UPDATE log 
    SET log.out_datetime = NOW() 
    WHERE log.user_id = 16 
    ORDER BY log.log_id DESC
    LIMIT 1;
UPDATE log 
SET log.out_datetime = NOW() 
WHERE log.log_id IN
(
   SELECT log_id FROM
   (
       SELECT log.log_id 
       FROM log 
       WHERE log.user_id = 16
       ORDER BY log.log_id DESC
       LIMIT 1
   )
AS tempTable
)