在MySQL 中提取第N 個單字並統計單字出現次數
提出的問題涉及MySQL 查詢可以提取特定單字的可能性從文字字串中提取並計算其出現次數。提供的範例旨在從文本中提取第二個單字。
Postgres 的查詢解決方案
雖然 MySQL 本身不支援直接正規表示式比對擷取,但其他資料庫(如 PostgreSQL)提供更直接的方法。在 PostgreSQL 中,可以使用以下查詢:
SELECT word, count(*) FROM ( SELECT SPLIT_PART(text, ' ', 2) AS word FROM (SELECT 'THIS IS A TEST' AS text) AS tmp ) AS words GROUP BY word;
此查詢使用 SPLIT_PART 函數根據空格將文字拆分為單字並提取第二個單字。產生的表格以單字出現次數將單字分組。
MySQL 的解決方法
對於 MySQL,需要不同的方法,因為不支援直接正規表示式擷取。一種解決方法涉及使用子字串和定位函數的組合:
SELECT SUBSTRING( text, LOCATE(' ', text) + CHAR_LENGTH(' '), LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') ) ) AS word, count(*) FROM (SELECT 'THIS IS A TEST' AS text) AS tmp GROUP BY word;
此查詢定位文字中第一個空格的位置,該位置位於第一個單字之後。然後,它將空格的長度加到該位置以開始提取第二個單字。提取的子字串的長度是透過定位下一個空格並從中減去起始位置來計算的。
此方法需要調整以提取不同的第 n 個單字。
以上是如何在 MySQL 和 PostgreSQL 中提取第 N 個單字並統計其出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!