0

「コンテンツ」フィールドにハッシュタグが含まれている場合、mysql を使用して結果を除外する方法を知りたいだけです。

例: 結果の内容が「#Euro2012 は素晴らしいものになる」

これはMySQLの結果に返されません....

前もって感謝します

4

2 に答える 2

4

とを使用するregexpreg_match_all()、次のようになります。

$str = <<<STR
this is a string
with a #tag and
another #hello one
STR;

$matches = array();
if (preg_match_all('/#([^\s]+)/', $str, $matches)) {
  var_dump($matches[1]);
}

次の出力が得られます。

array
  0 => string 'tag' (length=3)
  1 => string 'hello' (length=5)

そして、それらをもう少し操作する必要がある場合は、マニュアルの PCRE 関数セクションを参照してください。他にも役立つものがあります。

于 2012-12-14T13:56:30.427 に答える
3

varchar フィールドの場合、LIKEを使用できます。

SELECT * FROM myTable WHERE myVarCharField NOT LIKE '%#Euro2012%'

テキスト フィールドについては、全文検索を調べる必要があります。

更新(コメントによる提案):

正規表現ソリューション:

SELECT * FROM myTable WHERE myVarCharField NOT RLIKE '#.*\s'

ハッシュタグで始まるフィールドでフィルタリングする場合は^、正規表現に追加します。

于 2012-05-10T15:05:05.223 に答える