由于我是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);
似乎没有任何效果。你能帮我么?谢谢
答案 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';