2011-01-21 142 views
5

我想使用使用REGEXP的CASE語句。目前我正在做這樣的事情:MySQL CASE語句和REGEXP

SELECT NAME, 
CASE INFO 
    WHEN 'not cool' THEN 'Not Cool' 
    WHEN 'very cool' THEN 'Cool' 
ELSE INFO 
END AS INFO 
FROM INFO_TABLE 

是否有任何方法可以在初始語句中使用REGEXP使條件充當REGEXP?從理論上講,這是我想要的東西,這是不行的:

SELECT NAME,  
CASE INFO REGEXP 
    WHEN 'not cool' THEN 'Not Cool' 
    WHEN 'very cool' THEN 'Cool' 
ELSE INFO 
END AS INFO 
FROM INFO_TABLE 

我想「不冷靜」和「非常酷」是正則表達式。希望是夠清楚的。

回答

14

試試這個

select name, 
case 
    when info regexp 'not cool' then 'Not Cool' 
    when info regexp 'very cool' then 'Cool' 
else 
    info 
end 
    as info 
from INFO_TABLE; 
+0

1:由54秒打我。 – 2011-01-21 04:33:11

+0

優秀的,猜測,因爲我有額外的'信息'在那裏的情況下,我真的搞砸了! +1 – bjo 2011-01-21 04:39:11

0

我不知道是否有正則表達式,但也有,你可以與LIKE使用wilcards。

通配符%爲您提供任意數量的字符。通配符_給你任何單個字符。

實施例:

SELECT email FROM people WHERE email LIKE '%harvard.edu'