子查询匹配时更新表

时间:2012-10-03 15:56:42

标签: mysql

我正在尝试此查询,但它在子查询中输出语法错误。

问题是什么,如何解决?感谢

  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
        )
    )

1 个答案:

答案 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)
    )