2012-03-29 3 views
4

테이블에 2 개의 열이 있습니다. 전체 단어 수를 'ruffly'보고하고 싶습니다. MySQL 쿼리를 실행하고 열 아래로 총 단어 수를 확인할 수 있습니까?Mysql + 열에있는 모든 단어 수를 계산하십시오.

기본적으로 공백이나 여러 공백으로 구분 된 모든 텍스트가됩니다. 일반적인 가이드로 100 % 정확할 필요는 없습니다.

가능합니까? 이 같은

들으

답변

11

시도 뭔가 :

SELECT COUNT(LENGTH(column) - LENGTH(REPLACE(column, ' ', '')) + 1) 
FROM table 

이것은 당신의 열의 caracters의 수를 계산하고, 모든 공백을 제거하여 열에서 caracters의 수를 substracts 것입니다. 여기서 당신은 당신이 얼마나 많은 공간을 가지고 있고 거기에 얼마나 많은 단어가 있는지 알고 있습니다. (대략 두 공간으로 입력 할 수 있기 때문에이 단어는 두 단어로 계산됩니다.

+0

빈 문자열도 1 단어로 계산됩니다. –

+0

그럴 수도 있습니다. 운 좋게도 거친 계산이 필요했습니다. 그렇지 않으면 쿼리가 좀 더 복잡해집니다. –

+0

질문에 대한 좋은 대답입니다. 그러나 @RickHoving LENGTH (키워드) - LENGTH (REPLACE (키워드, '', ''))) +1 또한 작업을 수행합니다. 왜 그 위에 count()를 사용했는지 알고 싶습니다. 감사합니다! – geekidharsh

1

덜 거친 수 :

SELECT LENGTH(column) - LENGTH(REPLACE(column, SPACE(1), '')) 
FROM 
    (SELECT CONCAT(TRIM(column), SPACE(1)) AS column 
    FROM 
     (SELECT REPLACE(column, SPACE(2), SPACE(1)) AS column 
     FROM 
      (SELECT REPLACE(column, SPACE(3), SPACE(1)) AS column 
      FROM 
       (SELECT REPLACE(column, SPACE(5), SPACE(1)) AS column 
       FROM 
        (SELECT REPLACE(column, SPACE(9), SPACE(1)) AS column 
        FROM 
         (SELECT REPLACE(column, SPACE(17), SPACE(1)) AS column 
         FROM 
          (SELECT REPLACE(column, SPACE(33), SPACE(1)) AS column 
          FROM tableX 
         ) AS x 
        ) AS x 
       ) AS x 
      ) AS x 
     ) AS x 
    ) AS x 
) AS x 
+0

+1, 깊은 사상가 – SagarPPanchal

+0

샘플 값을 추가하여 선택한 답변보다 우수함을 보여줄 수 있습니까? – tom10271

6

백작은 단순히 당신을 발견 행의 수를 제공합니다. 대신 SUM을 사용해야합니다.

SELECT SUM(LENGTH(column) - LENGTH(REPLACE(column, ' ', '')) + 1) FROM table

+0

정말로 효과가 있었던 전체 인터넷의 유일한 대답! :) – Gediminas

관련 문제