2013-07-23 34 views
5

問題があります - 私はAbC(小文字の2つの大文字の間)のようなすべてのフレーズを見つける必要があります。 例文: リトルジョンはProBlEmを持っていて、tHiSを行う方法を知る必要があります。大文字の小文字の検索 -

私はProBlEmとtHiSを選択する必要があります(BlEとHiSは、2つの大文字の間に1つの小文字があります)。 これはどのように選択できますか?あなたはこのようなパターンが含まれているこれらのレコードをフィルタリングする(大文字と小文字の区別を確実にするために)バイナリ正規表現を使用することができますMySQLで

+0

"すべての一言" などの各retrive単語を検索しますか?あなたのデータベースのどこに? – Jon

答えて

1

WHERE my_column REGEXP BINARY '[[:upper:]][[:lower:]][[:upper:]]' 

しかし、それは、抽出にそれほど単純ではありません部分文字列は、MySQL内からこのようなパターンに一致します。 1つののようにUDFを使用します。 lib_mysqludf_pregですが、これはおそらくアプリケーションレイヤー内で実行するのに適したタスクです。どちらの場合でも、正規表現はこの作業を簡単にするのに役立ちます。

+0

この警告は[mysqlマニュアル](http://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp)から知っておいてください: "REGEXPおよびRLIKE演算子はバイト単位で動作しますので、マルチバイトの安全ではなく、マルチバイト文字セットで予期しない結果が生じる可能性があります。 – mabi

+0

私のせいで、すべて動作します!ありがとう! –

+0

文字通り「e」で十分です。 – mabi

関連する問題