我想通过包含在表列中的单词数过滤MySQL查询的结果。如何根据列中的单词数量过滤MySQL结果?
例如,我有10个感言与列ID,名称,网址,证言和其中五行有一个证明专栏有超过100个单词组成的证言。
如何使用查询来返回在该评论栏中少于100个单词的行?
感谢,
我想通过包含在表列中的单词数过滤MySQL查询的结果。如何根据列中的单词数量过滤MySQL结果?
例如,我有10个感言与列ID,名称,网址,证言和其中五行有一个证明专栏有超过100个单词组成的证言。
如何使用查询来返回在该评论栏中少于100个单词的行?
感谢,
不,我建议他们做了很大规模伟大的方式,但...
http://www.mwasif.com/2008/12/count-number-of-words-in-a-mysql-column/
SELECT *
FROM table
WHERE LENGTH(field) - LENGTH(REPLACE(field, ' ', '')) + 1 < 100
它实际上计数的空间..但是这对你来说可能已经足够接近了。
MySQL并没有真正的“单词”计数功能,但您可以通过计算文本字段中空格的数量来获得粗略的估计值。当然,有没有“有多少个字符‘X’是有一个字符串函数),所以你必须在它去以一种迂回的方式:
SELECT LENGTH(textfield) - LENGTH(REPLACE(textfield, ' ', '') AS words
FROM ...
HAVING words < 100
基本上,获取文本字段的长度,然后用空格删除相同文本字段的长度,给出空格的数量
oooh,优雅!为你+1! – 2011-03-28 14:54:56
文本的长度减去无空格的文本的长度,理论上应该返回单词的数量减1 ...所以我认为+1对你来说是奇怪的相关:) – 2011-03-28 14:59:44
首先定义“字” – 2011-03-28 15:00:38
@Shrapnel:一系列一个或多个字符,其中任何一边或两边都有空格? – 2011-03-28 15:07:13