回答

收藏

SQL LIKE'%value%'的反函数

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

我有一个包含域名的MySQL表:' P9 R; i7 J: D$ L$ x& J
+----+---------------+* Q4 {- |, [9 s. L
| id | domain        |( o. o* F4 V; R  z! L$ W: a
+----+---------------+; D3 [2 @# @/ v
|  1 | amazon.com    |
* O& G3 J. `( J  K; j|  2 | google.com    |5 u" g! d0 [# M
|  3 | microsoft.com |
3 H0 {6 D5 W+ U9 G! [|    |     ...       |; L% b9 @9 y  i- F$ K
+----+---------------+! k1 }; F- w  ]- _- R% h' ?
我希望能够在此表中搜索完整的主机名(即“ www.google.com”)。如果是表格包含完整URL的相反方法,我将使用:( y8 A- ]  W3 U. }; r- O0 B
SELECT * FROM table WHERE domain LIKE '%google.com%'1 [1 k! |- M2 a; k
但是,倒数并不是那么简单。我目前的想法是搜索完整的主机名,然后逐步剥离域的每个部分,然后再次搜索。(即先搜索“ www.google.com”,然后搜索“
: l8 Z0 K; W7 F3 hgoogle.com”)
/ m. m8 \9 A  m, k7 R. H7 {这不是特别有效或巧妙的方法,必须有更好的方法。我敢肯定这是一个普遍的问题,而且无疑很容易解决!
# x( H3 j: X) v$ p* y                  A) Q$ u3 i$ X# N
解决方案:& _$ A+ q; v# E0 u; l/ q
                % h9 w3 X/ Z! z, J
8 L7 F) V# d$ k: I, V& [$ _
# B4 w( h) m) \3 u* Y
                您也可以使用右侧的列:
2 C5 D- m# L* cSELECT domain FROM table WHERE 'www.google.com' LIKE CONCAT('%', domain);
& I. X& y6 C# g# \或者
' D" H5 e( G4 q* W+ u0 u* lSELECT domain FROM table WHERE 'www.google.com' LIKE CONCAT('%', domain, '%');3 w% E0 o, c' B/ R
它不是特别有效,但是可以工作。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则