2012-01-24 21 views
2

MySQLの節では、'%keyword%'のようなワイルドカード検索が可能です。キーワードは列の値に挟まれます。MySQLの文字列パターンの一致 - のようなもの

キーワードに列の値の一部が含まれ、%keyword%が機能しないパターンマッチングでは、INSTR関数を使用して検索できます。

例:ここでは

Column="Apple" 
$keyword = "An Apple a day" 

、我々は試合を作るためにColumn like '%$keyword%'を行うことはできませんが、(INSTR('$Keyword', Column)>0は試合をするでしょう。

どのような代替案(正規表現?、全文検索?、lucene?)は、そのようなパターン一致(例?)のためにINSTR以外のものを持っていますか?

更新:

Column = "Golden Apple" 
$keyword = "An Apple a day" 

でも、このようなサンプルのために、私は彼らが共通語「アップル」を持っているように、列に$キーワードにマッチできるようにしたいと思います。

答えて

1

、あなたはまだLIKEを使用することができます。

'%$keyword%' LIKE CONCAT('%', Column, '%') 

または正規表現:

'%$keyword%' REGEXP Column 
+0

Column = "Golden Apple"の場合、これは機能しません。検索用語と列の両方に位置に関係なく一致する文字がある場合は問題になります。私はこのケースを反映するために質問を更新します。 –

+0

「ゴールデンアップル」でも「アップルパイ」とマッチしたいのですか? –

+0

まさに!連続して一致する文字があれば一致させたい –

1

私は正確にあなたが何をしたいのか明確に理解、が、約pattern matching in mysql

はあなたが手順を書いているヘルプ、トリガー、または単に選択を見つけるために、このリンクを試してみませんか?この場合

+0

私はトリガーや手順には関係しません。たとえば、質問の例のようにキーワードを列の値と照合する必要がある場合、どうすればよいですか?単純なlike節はここの解決策ではないので、私は代替案を探しています。 –

関連する問題