2016-12-03 39 views
0

我试图与JOIN更新和RANDMYSQL使用不当兰德

UPDATE table1 a INNER JOIN table2 b USING(id) 
SET a.description = CONCAT('different words', b.name) 
WHERE a.description LIKE '' 
ORDER BY RAND() LIMIT 100; 

我得到的错误:UPDATE和秩序的不正确的使用情况

无连接下面的代码工作完美

UPDATE table1 SET description = CONCAT('different words', name) 
WHERE description LIKE '' 
ORDER BY RAND() LIMIT 100; 

感谢帮助

+0

你想做些什么?你在和什么rdbms合作? –

+0

哪种RDBMS适用于?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –

+0

描述和标签更新,谢谢 –

回答

0

假设你正在使用mysql,你应该把你的查询(用户变量和顺序)作为内联视图(MySQL称之为派生表)来包装。将整个视图作为UPDATE语句中的行源引用。所以,你的查询应该是这样的:

UPDATE table1 a 

INNER JOIN ( 
     --query 
     ) as someName 
SET a.description = CONCAT('different words', b.name) 
+0

谢谢但同样的错误 –

0

试试这个:

UPDATE a 
SET a.description = CONCAT('different words', b.name) 
FROM table1 a 
INNER JOIN table2 b ON a.id=b.id 
WHERE a.description LIKE '' 
ORDER BY RAND() LIMIT 100; 
+0

不,它不起作用 谢谢 –