回答

收藏

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

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

我有一个名为results5列的表格。
1 G3 i7 ^* X" H/ e6 I- d我想使用该title列查找要说的行:WHERE title like '%for! `1 D. |- n) `! q: n+ `
sale%'然后在该列中列出最受欢迎的单词。一个会是for,另一个会是,sale但是我想看看与此相关的其他词。# }' Y* k+ N' U0 ^" j
样本数据:
- z( C' O9 R+ L8 H8 _- gtitle9 n4 W' g( U/ s9 K5 K1 e" p: ~
cheap cars for sale/ Z& ]- t6 [% }' B2 e
house for sale
1 m3 Y# }6 B9 ~/ ~1 r5 B- @/ Ccats and dogs for sale
( D1 u) O7 W# y+ {( Qiphones and androids for sale
  _" M+ B5 f$ {7 O  q4 b/ Kcheap phones for sale
; Z, W( k( E! lhouse furniture for sale& j3 E/ b. F  ]9 |
结果(单字):
* [. A( I: T# w, E# Nfor    6% z8 T/ x! ?; @7 J
sale    69 x( E* S. w: p  h3 F" }
cheap    2% l6 k3 @/ S; n( P( @6 U1 K
and    2" K$ B% l& K% T5 m( Y! q/ ^: Z
house    2
* @- _* e6 i. J6 p2 K8 X; ifurniture 1
: u' h! g& z1 k. F  z6 \, fcars    1
0 v' a; ~+ K, \  \( x1 Vetc...
8 s  X2 }. ~1 m- a) H: X( O                  N8 A5 ~% m2 a. ?8 O
解决方案:, R6 H3 ?# b: N- P# Z
                , q3 S- G& E# n) s

  D5 ?9 i6 @  g8 u5 T% a1 T3 g" q% B5 i/ E4 n
                您可以通过一些字符串操作来提取单词。假设您有一个数字表,并且单词之间用单个空格分隔:
. X! {* N3 e3 ?6 J9 `+ yselect substring_index(substring_index(r.title, ' ', n.n), ' ', -1) as word,8 ?; s. O# Z7 H0 Y+ h5 K' G
       count(*). S, Y" o& |2 h, U, O  N8 p
from results r join
" W5 S! r. }5 O: c$ I& D     numbers n$ V; i/ Y. d$ l: w+ p
     on n.n 如果没有数字表,则可以使用子查询手动构造一个表:
2 M  v2 [3 g7 |2 o/ Tfrom results r join
& D8 Z9 _! A- A# e/ v/ s2 y     (select 1 as n union all select 2 union all select 3 union all . . .
, [6 z' g* A% c: f& C% t/ }     ) n
" C7 i0 F' w# P. ^+ a; R     . . ./ \! z+ E8 `. {, N& N0 }. U2 h
SQL小提琴(由@GrzegorzAdamKowalski提供)在这里。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则