如何计算数据库中句子中的单词,例如:
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