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
它不是特别有效,但是可以工作。 |
|
|
|
|
|