2011-09-19 49 views
0

我有以下表結構計算字的數目在一個視圖中的MySQL

+-----------------+-------------+ 
| myID   | text  | 
+-----------------+-------------+ 
| 3    | some text | 
| 3    | other text | 
| 5    | text  | 
+-----------------+-------------+ 

本身份識別碼是不唯一的ID。它可以重複。文本是任意字符串。 我正在創建一個視圖,用於返回myID行的文本中的單詞數。

+-----------------+-------------+ 
| myID   | count  | 
+-----------------+-------------+ 
| 3    | 4   | 
| 5    | 1   | 
+-----------------+-------------+ 

好了,我開始了(我是一個新手是MySQL的),並做了以下

SELECT 
myid, 
pagetext 
FROM table 
GROUP by myid 

這不只是分組。我認爲接下來的步驟是

  1. 如何使pagetext返回相應的myID行的連接(我正在尋求限制連接到25行)。
  2. 如何計算返回值中的字數。

任何想法如何開始?

+0

開始嘗試定義「什麼構成一個詞?」這聽起來並不像聽起來那麼簡單,除非數據被存儲起來,因此它總是有一個單獨的空格分隔單詞而沒有標點符號。 – JohnFx

+0

另外,每個ID的TOTAL單詞或UNIQUE單詞的計數是多少? – JohnFx

+0

只是由空格分隔的字符。它計數總詞,不知道爲什麼你感到困惑。這個例子實際上顯示了它。 –

回答

1

你可以找到在列的單詞數(如果你可以假設有1與字之間正好是1空間),用下面的查詢:

SELECT 
    myId, 
    SUM(LENGTH(text)-LENGTH(REPLACE(text, ' ', ''))+1) 
FROM table 
GROUP BY myId 

來源:http://www.mwasif.com/2008/12/count-number-of-words-in-a-mysql-column/

+0

...除了您錯過了來自源的「名稱」的一個實例外;它應該是:SUM(長度(文本)-LENGTH(REPLACE(text,'',''))+ 1)' – Frost

+0

謝謝你的工作。稍後將標記爲答案;) –

+0

限制是什麼?這是非常需要的。我如何添加它? –