0

問題の例:

SELECT * FROM `table`
WHERE `content`
RLIKE "[[:<:]]didnt[[:>:]]"

問題は、「didnt」などを検索すると、「didn't」(アポストロフィ付き) の列が見つからないことです。また、「didn't」を検索すると、「didnt」(アポストロフィなし) の列は見つかりません。

アポストロフィ、コンマ、ハイフンなどを無視し、アポストロフィがある/ないに関係なく結果が得られるようにするには、どのような変更を加える必要がありますか。

4

2 に答える 2

0

ネストされた置換関数を使用できます。

SELECT *
FROM `table`
WHERE
  replace(replace(replace(`content`, '\'', ''), ',', ''), '-', '')
  RLIKE "[[:<:]]didnt[[:>:]]"
于 2013-01-08T23:03:40.020 に答える
0

で試してみませんか|options

SELECT * FROM table
WHERE 
(content RLIKE "[[:<:]]didnt[[:>:]]|[[:<:]]didn't[[:>:]]|[[:<:]]didn..t[[:>:]]|ETC)"

ソース: http://www.sqllines.com/mysql/regexp_rlike

于 2013-01-08T20:17:41.583 に答える