用不同的值更新表列

时间:2019-12-06 04:46:02

标签: mysql

由于我是MySQL的新手,并且无法超越:(

我有一个名为"localgames"的表和一个名为"Stock"的列。存货中的值是:

16Sold out
18Sold out
25Sold out
50Sold out

我想在“售罄”中进行全部转换,并且尝试了以下操作:

UPDATE localgames SET Stock = IF(Stock REGEXP '*.Sold out', 'Sold out', Stock);

也尝试过

UPDATE localgames SET Stock = IF(Stock REGEXP '^[0-9]Sold out', 'Sold out', Stock);

似乎没有任何效果。你能帮我么?谢谢

2 个答案:

答案 0 :(得分:0)

您不应这样做。您的表格设计未规范化。

一种更好的方法是拥有一个这样的表

localgames
----------
id
name 
total_capacity (INT)
sold_capacity (INT)

然后,您可以确定游戏是否已售罄

select case when total_capacity - sold_capacity = 0 
            then 'sold out'
            else 'free places left'
       end as status
from localgames

答案 1 :(得分:0)

看起来,我们不应与MySQL的REPLACE以及REGEXP一起使用。但是您可以通过此简单查询来实现目标。希望对您有帮助。

UPDATE 
  localgames
SET 
  Stock = 'Sold out' 
WHERE 
  Stock LIKE '%Sold out';