Mysql 使用不同的值更新表列

Mysql 使用不同的值更新表列,mysql,Mysql,我想请大家开动脑筋来解决一个问题,因为我对MySQL还不熟悉,所以无法解决这个问题:( 我有一个名为“localgames”的表和一个名为“Stock”的列。Stock中的值是: 16Sold out 18Sold out 25Sold out 50Sold out 我想在“售罄”中改变这一切,我尝试了以下方法: UPDATE localgames SET Stock = IF(Stock REGEXP '*.Sold out', 'Sold out', Stock); 也试过 UPDATE

我想请大家开动脑筋来解决一个问题,因为我对
MySQL
还不熟悉,所以无法解决这个问题:(

我有一个名为
“localgames”
的表和一个名为
“Stock”
的列。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);

似乎什么也没用。你能帮我吗?谢谢你不应该那样做。你的桌子设计不规范

一个更好的方法是有这样一张桌子

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
然后你就可以知道一个游戏是否像这样卖完了

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

看来,我们不应该把它与MySQL的
REPLACE
REGEXP
混为一谈。但是你可以通过这个简单的查询来实现你的目标。我希望它能帮助你

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


尝试以下操作:update localgames SET Stock=“salled Out”where ID=YourRowIDHere。where子句很重要,否则它将更新名为“salled Out”的所有行。我应该解释一下,我实际上需要清理表才能导出到其他地方,这就是我试图找到一种方法来更新所有内容的原因“XX售罄”改为“售罄”。有没有办法做到这一点?嗨@RafaelSouza,请参考我的答案。我希望它能帮助你实现你的目标。酷,快乐编码!