@Marc B provides the reason, why update normally can't work with limit.
And @Roopchand also provide a solution.
For people like me, who is trying to avoid turning off the safe update mode 
https://stackoverflow.com/a/28316067/1278112
This answer is quite helpful. It give an example
UPDATE customers SET countryCode = 'USA'
      WHERE country = 'USA';               -- which gives the error, you just write:
UPDATE customers SET countryCode = 'USA'
      WHERE (country = 'USA' AND customerNumber <> 0); -- Because customerNumber is a primary key you got no error 1175 any more.
And when I face update with the multiple-table syntax, it also worked.  
What I want but would raise error code 1175.
UPDATE table1 t1
        INNER JOIN
    table2 t2 ON t1.name = t2.name 
SET 
    t1.column = t2.column
WHERE
    t1.name = t2.name;
The working edition
UPDATE table1 t1
        INNER JOIN
    table2 t2 ON t1.name = t2.name 
SET 
    t1.column = t2.column
WHERE
    (t1.name = t2.name and t1.prime_key !=0);
Which is really simple and elegant. Since the original answer doesn't get too much attention (votes), I post more explanation. Hope this can help others.