如何计算数据库中句子中的单词,例如:

id words

1  bananas, mango, orange, watermelon

2  bananas, mango, orange, watermelon

3  bananas, mango, orange, watermelon

4  bananas, mango, orange, watermelon

我只想数一下芒果的数量,如果我数一下,结果是:4
这是我的问题
"SELECT count(words)as total FROM fuit WHERE ?????";

?也就是说我不知道怎么用在哪里。。
但是,在mysql和pdo中使用查询时如何做到这一点呢?

最佳答案

如果words字段中没有空格(例如bananas,mango,orange,watermelon),则可以使用FIND_IN_SET

 SELECT ... WHERE FIND_IN_SET('mango', words)

对于空格,必须使用正则表达式,例如:
SELECT ... WHERE words RLIKE '(^|, )mango($|,)'

更好的是,考虑“规范化”您的数据-创建一个单独的words表:
id  word
1   mango
2   orange
etc

以及一个链接表:
doc_id    word_id
1         1
1         2
etc

08-25 13:24