我想從MySQL數據庫(使用MYSQL工作臺)中的文本(字符串)表中最常見的單詞計數。我通過閱讀另一篇文章(由Kickstart撰寫)獲得了此代碼。 此代碼使用一個單獨的表,稱爲整數,其中包含0到9的10列用於計數。計算SQL表中最常見的詞與排除
主表的表格模式。我主要只對「文本」列中的數據感興趣。
'Id', 'int(11)', 'NO', 'PRI', '0', ''
'PostId', 'int(11)', 'YES', 'MUL', NULL, ''
'Score', 'int(11)', 'YES', 'MUL', NULL, ''
'Text', 'varchar(4000)', 'YES', '', NULL, ''
'CreationDate', 'varchar(25)', 'YES', '', NULL, ''
'UserId', 'int(11)', 'YES', 'MUL', NULL, ''
'UserDisplayName', 'varchar(255)', 'YES', '', NULL, ''
SQL查詢:
SELECT aWord, COUNT(*) AS WordOccuranceCount
FROM (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(concat(Text, ' '), ' ', aCnt), ' ', -1) AS aWord
FROM table
CROSS JOIN (
SELECT a.i+b.i*10+c.i*100 + 1 AS aCnt
FROM integers a, integers b, integers c) Sub1
WHERE (LENGTH(Body) + 1 - LENGTH(REPLACE(Text, ' ', ''))) >= aCnt) Sub2
WHERE Sub2.aWord != ''
GROUP BY aWord
ORDER BY WordOccuranceCount DESC
LIMIT 10
它列出了前10個字,但他們完全像一個短的話,則你,我......等 我怎樣才能改變它跳過某些像這樣的詞?
我怎麼能這樣說,只有5個字符和以上的單詞被計算在內?
整數表 'I', 'INT(11)', '否', 'PRI',NULL, ''
原帖和代碼從該柱取出的架構。我是新的,不能發佈任何內容,所以我不得不在這裏問。
determining most used set of words php mysql
非常感謝您的幫助!
你能給我們一個你的表模式的樣本嗎? – ncdreamy
如果您使用表模式更新您的問題,則會更好 – ncdreamy
更新了模式問題。謝謝! – user3769475