具有内部联接的MySQL更新与Like

时间:2015-05-07 01:01:56

标签: mysql sql-update inner-join

有人能告诉我为什么这个查询不起作用?我有20k行要更新。 select查询返回行,但Update查询将不会运行。

更新查询

UPDATE TEST_shoe_data t
INNER JOIN shoe_data_temp s 
ON t.sku = s.sku 
SET t.thumbnail = s.thumbnail 
WHERE t.thumbnail like '%4x.jpg%'

选择查询

select count(*)
from TEST_shoe_data
where thumbnail like '%4x.jpg%' 

2 个答案:

答案 0 :(得分:1)

您的查询没问题。您的数据很可能不是您认为的那样。

正如您在此demo fiddle中所看到的,您的查询语法很好,并且它完全按照它的说法执行。

这意味着您的加入条件可能不对。

确实

select count(*) from test_shoe_data t inner join shoe_data_temp s on t.sku = s.sku

返回正数?

怎么样:

select count(*) from test_shoe_data t inner join shoe_data_temp s on t.sku = s.sku where t.thumbnail like '%4x.jpg%'

或者是否有任何行匹配where条件?

select count(*) from test_shoe_data where thumbnail like '%4x.jpg%'

答案 1 :(得分:0)

您的查询有效。你有什么问题?

http://sqlfiddle.com/#!9/6965f/1

UPDATE TEST_shoe_data t
INNER JOIN shoe_data_temp s 
ON t.sku = s.sku 
SET t.thumbnail = s.thumbnail 
WHERE t.thumbnail like '%4x.jpg%'