2016-04-13 16 views
0

データベースから特定の行を選択しようとしていますが、何らかの理由で動作しません。私は間違って何をしているのですか?どうすれば修正できますか?regexpを使用してmysqlから行を選択

select response from allData where response regexp '\*([a-zA-Z]+)+\*' 

のような行を選択すると仮定しています:

*あなたが単語の後に余分なスペースで--- *

^を蹴り、アスタリスクの前に。しかし、それは動作していません。どうすれば修正できますか?

+1

おそらく '*' –

+0

@PaulSpiegel彼は '\ *'でそれを試しています。 – Barmar

+1

ダブルバックスラッシュを使用します。また、完全な文字列が一致していることを確認する必要がある場合は、アンカーを使用してください: ''^\\ *([a-zA-Z] +)+ \\ * $ '' –

答えて

4

あなたは*を正しくエスケープしていません。バックスラッシュは、文字列と正規表現のエスケープ文字の両方です。正規表現エンジンが*をエスケープするバックスラッシュを見るためには、バックスラッシュをエスケープして文字列パーサを取得する必要があります。

select response from allData where response regexp '\\*([a-zA-Z]+)+\\*' 
関連する問題