SQL MATCH LIKE,使id等于彼此

时间:2015-02-06 17:35:23

标签: mysql sql match sql-like

所以我有这个代码

SELECT NAME, ingredient_id
FROM ingredient_aliases
WHERE (NAME) LIKE '%WATER%' 
它显示了所有与WATER相似的名字

enter image description here

从上图来看,这三个都是水。

我有很多带有NULL ingredient_id的WATER名称。 有没有办法可以使他们的ingredient_id彼此相等?

如果您需要更多信息,请告诉我。 谢谢 !

2 个答案:

答案 0 :(得分:0)

  

您想将NULL值更新为666?

     

@Hart CO是,确切地说

我认为你需要这样的东西:

UPDATE ingredient_aliases
SET  ingredient_id = 666
WHERE (NAME) LIKE '%WATER%'  AND 
      ingredient_id IS NULL

我认为所有水域的{{​​1}}都相同。

答案 1 :(得分:0)

使用子查询从非空行中获取成分ID。然后在UPDATE赋值中对所有空行使用它。

UPDATE ingredient_aliases
SET a.ingredient_id = 
     (SELECT MAX(ingredient_id) AS max_id
      FROM ingredient_aliases
      WHERE name LIKE '%WATER%'
        AND ingredient_id IS NOT NULL)
WHERE name LIKE '%WATER%' 
    AND ingredient_id IS NULL