Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 “where子句”中的未知列“p.id”_Mysql_Sql - Fatal编程技术网

Mysql “where子句”中的未知列“p.id”

Mysql “where子句”中的未知列“p.id”,mysql,sql,Mysql,Sql,当我执行我的请求时: 我有一个错误: 我不明白使用显式联接: 或者,更简单地说,使用ORDER BY和LIMIT: 如果我没弄错你的问题,你需要给maxid起个名字 UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p SET s.title = 'TEST' WHERE s.id = p.id; 你想干什么?子查询不返回任何列id。如果我正确理解您的查询,它不应该是WHERE s.id=p吗?您创建了一个名为p的列,然后在没有id的情况下尝

当我执行我的请求时:

我有一个错误:

我不明白

使用显式联接:

或者,更简单地说,使用ORDER BY和LIMIT:


如果我没弄错你的问题,你需要给maxid起个名字

UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p 
SET s.title = 'TEST' 
WHERE s.id = p.id; 

你想干什么?子查询不返回任何列id。如果我正确理解您的查询,它不应该是WHERE s.id=p吗?您创建了一个名为p的列,然后在没有id的情况下尝试将其引用为p.id。当然,如果MySQL与MSSQL类似,那么WHERE子句中不支持别名。
Unknown column 'p.id' in 'where clause'
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'p.id' in 'where clause'
UPDATE vm s JOIN
       (SELECT MAX(id) as pid FROM vm) p 
       ON s.id = p.pid
    SET s.title = 'TEST' ;
UPDATE vm
    SET title = 'TEST'
    ORDER BY id DESC
    LIMIT 1;
UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p 
SET s.title = 'TEST' 
WHERE s.id = p.id;