更新语法,但零行影响了MySQL

时间:2013-02-26 14:07:37

标签: mysql rows concat

这是我的数据:

表TAX1

tax           | tax_list

abc_132       | empty   
cda_456       | empty    
akc_896       | empty 

TABLE GENUS

taxon_list    | taxon_schema

Bees          | abc_132 cda_456    
Elefants      | akc_896

现在我想用表GENUS中的taxon_list填充表TAX1中的空tax_list,其中来自表TAX1的税收出现在TABLE GENUS的taxon_schema中。

我尝试了以下解决方案;语法似乎是正确的,但我得到“0行受影响”,因此没有任何变化!

update Tax1 set Tax1.tax_list=(select genus.taxon_list from genus where Tax1.tax_schema like concat('%genus.taxon_schema%'));

它应该是这样的:

tax                  |    tax_list

abc_132              | Bees    
cda_456              | Bees
akc_896              | Elefants 

1 个答案:

答案 0 :(得分:0)

给它一个旋转。

update Tax1
  set Tax1.tax_list=(
    select genus.taxon_list from genus where genus.taxon_schema like concat('%', Tax1.tax, '%'));

的变化:

此外,您可能希望在选择匹配的情况下向SELECT添加LIMIT 1> 1排。