如何通过字数统计我的查询?有可能吗?
我在表格中有一些行,带有文本字段。我想通过这些文本字段的字数来订购它们。
第二个问题是,我只需要选择这些行,例如最少10个字,或者最多20个。
答案 0 :(得分:4)
好吧,由于需要对所有行执行字符串计算,因此效果不会很好:
您可以计算MySQL列中的单词数量,如下所示:SELECT SUM( LENGTH(name) - LENGTH(REPLACE(name, ' ', ''))+1) FROM table
(假设单词定义为“any-delimited-by-a whitespace”)
现在,将其添加到您的查询中:
SELECT
<fields>
FROM
<table>
WHERE
<condition>
ORDER BY SUM(LENGTH(<fieldWithWords>) - LENGTH(REPLACE(<fieldWithWords>, ' ', '')) + 1)
或者,将其添加到条件:
SELECT
<fields>
FROM
<table>
WHERE
SUM(LENGTH(<fieldWithWords>) - LENGTH(REPLACE(<fieldWithWords>, ' ', '')) + 1) BETWEEN 10 AND 20
ORDER BY <something>
答案 1 :(得分:2)
也许是这样的:
SELECT Field1, SUM( LENGTH(Field2) - LENGTH(REPLACE(Field2, ' ', ''))+1)
AS cnt
FROM tablename
GROUP BY Field1
ORDER BY cnt
Field2
是您想要计算单词的字符串字段。