次のメッセージを検討してください。
id message
------------------------------------------------------------
1 $AA is the only way to go!
2 This is my $AA. There are many like it.
3 But this is my $AA.
4 My$AA is my swag.
5 For lack of imagination a message with $AA in the middle.
6 Another message with at the end: $AA
$AAですべてのメッセージをフィルタリングしたい:
- $ AAはメッセージの先頭にある可能性があります(つまり、その後のスペースのみ)
- $ AAはメッセージの最後にある可能性があります(つまり、その前のスペースのみ)
- $ AAは、メッセージ内の他の場所にある可能性があります(スペースで囲まれています)
- $ AAは、その前後に句読点を付けることができます:$AA。$ AA、または($ AA)
- しかし、他の文字(文字と数字)はありません
私は通常、次のようなクエリを使用します
SELECT * FROM messages WHERE message LIKE '%$AA%'
ただし、メッセージ4も返されます。クエリがメッセージ4を返さないようにするにはどうすればよいですか?