2011-01-21 16 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秒で私をビート。 –

+0

ケースの直後に「INFO」が追加されているので、素晴らしいと思います。本当にうんざりしてしまいました。 +1 – bjo

0

を試みる正規表現があるかどうかは知りませんが、LIKEで使用できるwilcardsがあります。

ワイルドカード%は任意の文字数を指定します。ワイルドカード_はあなたに任意の1文字を与えます。

例:

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

〜4.x以降、MySQLにはREGEXPがあります。http://dev.mysql.com/doc/refman/4.1/en/regexp.html –

+0

ありがとうございます。そして、私はOracleが10gリリースで正規表現を得たことを知っています:-) – ktm5124