「コンテンツ」フィールドにハッシュタグが含まれている場合、mysql を使用して結果を除外する方法を知りたいだけです。
例: 結果の内容が「#Euro2012 は素晴らしいものになる」
これはMySQLの結果に返されません....
前もって感謝します
とを使用するregex
とpreg_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 関数セクションを参照してください。他にも役立つものがあります。
varchar フィールドの場合、LIKEを使用できます。
SELECT * FROM myTable WHERE myVarCharField NOT LIKE '%#Euro2012%'
テキスト フィールドについては、全文検索を調べる必要があります。
更新(コメントによる提案):
正規表現ソリューション:
SELECT * FROM myTable WHERE myVarCharField NOT RLIKE '#.*\s'
ハッシュタグで始まるフィールドでフィルタリングする場合は^
、正規表現に追加します。