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,请参考我的答案。我希望它能帮助你实现你的目标。酷,快乐编码!