回答

收藏

如何在MySQL中找到最流行的单词出现?

技术问答 技术问答 260 人阅读 | 0 人回复 | 2023-09-14

我有一个名为results5列的表格。  p9 S* g5 S& l% i0 y8 [
我想使用该title列查找要说的行:WHERE title like '%for3 u! u' u$ S7 D9 b5 _0 c# `
sale%'然后在该列中列出最受欢迎的单词。一个会是for,另一个会是,sale但是我想看看与此相关的其他词。# {/ H* ?2 t/ G# i7 j4 Y. N
样本数据:5 X2 b# o) x9 d3 }
title( z% T, I$ }& v( x0 g$ l% p' Z1 e9 M
cheap cars for sale# p0 Z9 s& p1 u  p& Q8 U) \- v
house for sale
! U  F/ j2 }) Z: M: S% O$ N- r# E: z& Scats and dogs for sale
! y$ `' w. D( H( G+ Y! Eiphones and androids for sale
0 }" ?" v: g1 \8 Q1 y  \9 Qcheap phones for sale  A" x% z) \& }& U8 A
house furniture for sale7 H. U; T7 A3 f+ j0 D3 G
结果(单字):2 Q, J4 b" `+ i$ F; W
for    69 T: D. H% p* R6 z+ J5 Z/ F. h6 r
sale    6
7 W, a3 p: j$ d' S0 u8 e3 |cheap    2
, W  Y+ r; x( k2 j" oand    2
3 I! U. |, J9 e- K$ |: Jhouse    2
/ E9 X9 O2 W8 X0 ~. _% X# U! w7 s  k" Jfurniture 1, [- M* F; _2 @7 Z
cars    1
- X' E/ y; @4 \6 c: letc...8 o1 h+ c5 l; z! g6 L
                ! X& {* t. W+ P
解决方案:2 l& e5 i% a8 ^9 u
               
9 T: U, y6 }" ?$ q7 c9 D7 ^8 {2 H
. F7 A$ u0 [2 Z  d( a! R/ w; u
* Q" D5 A/ ~8 G% m                您可以通过一些字符串操作来提取单词。假设您有一个数字表,并且单词之间用单个空格分隔:" \3 l+ S! ~! u, ^% ?! U
select substring_index(substring_index(r.title, ' ', n.n), ' ', -1) as word,1 }9 w( M9 Z, U$ C+ ]
       count(*)
! H% G/ W0 \6 G# C5 Tfrom results r join. `: ^9 m. N" r5 v9 S- p
     numbers n
+ F1 g8 j' G, u8 c+ V. o  N8 |, D     on n.n 如果没有数字表,则可以使用子查询手动构造一个表:  B, d% y" g- D! Y% n
from results r join3 Y$ M! |% h- c
     (select 1 as n union all select 2 union all select 3 union all . . .1 I' i* {" d7 F' s5 a/ @- H/ i
     ) n
+ z7 U' x& [  F8 L8 ~+ N1 K     . . .
7 J. o+ i: Y; Y, SSQL小提琴(由@GrzegorzAdamKowalski提供)在这里。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则