2012-10-03 55 views
0

我正在尝试此查询,但它在子查询中输出语法错误。当子查询匹配时更新表

什么问题和如何解决?感谢

UPDATE CompradorCategorias_new as A 
    SET A.idParent=(
     SELECT idcategoria 
     FROM categoriasi18n_new 
     WHERE 
     (
      SELECT SUBSTRING_INDEX(NomeComPath, '>', 2) 
      FROM CompradorCategorias_new 
      = 
      SELECT translationWithPath 
      FROM categoriasi18n_new 
     ) 
    ) 
+0

具体是什么语法错误? –

回答

1

一切看起来好您的查询直到WHERE条款 - 在这一点上,它的各种错误。实际上,你可以丢弃块,并使用常用WHERE条款比较(而不是第二子查询):

UPDATE 
    CompradorCategorias_new AS A 
SET 
    A.idParent = (
     SELECT 
      idcategoria 
     FROM 
      categoriasi18n_new AS B 
     WHERE 
      B.translationWithPath = SUBSTRING_INDEX(A.NomeComPath, '>', 2) 
    )