2011-01-21 224 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'