回答

收藏

MySQL IN与LIKE

技术问答 技术问答 115 人阅读 | 0 人回复 | 2023-09-13

我如何将IN表与like一起使用?这样我就可以在其中使用%了?我的意思是:
( J  H; f! U9 [- `+ J7 N/ rSELECT fields 9 c$ M! C7 v% L8 _7 [$ |
  FROM table 1 a9 Q6 ^; h' N0 ~2 w7 _+ ?
WHERE age = "50"
5 L2 Q7 n% k$ k. }( l   AND name IN ("tim", "bob", "nancy", "john");2 n8 m# I& [( h( L, {
我已经尝试过:8 M; V& G" _  v" K9 r% b
SELECT fields
* @: p% e3 K- f/ p  FROM table ! E1 k% b+ G/ ]$ k2 {
WHERE age = "50"
, ~  d' y  q; a+ {5 @   AND name LIKE ("2010-09-17%", "2010-09-16%")
, Q  x1 `1 Q; N( K) Z/ q# w但是它给出了错误“操作数应包含1列”3 _8 A8 ?1 G3 e, |. G4 U1 G- u
               
2 T$ I, ~1 m" h  o5 ?* ~解决方案:
* ]( Y/ ~" x2 ]' U  l. G8 t               
) X0 Y* k* w+ Y0 F
5 N9 q/ H' Q) n, J. O5 U
) W  r' f; p2 o' D% Z( P5 b                您可以使用许多LIKE表达式:
' W; C& {8 |% ASELECT fields . V3 Y, S8 y, v3 `9 Y+ N8 O8 U# w, `; [
  FROM table 4 ^+ n4 M! J* k* L3 v5 Y
  WHERE age = "50" 9 `7 R1 \5 G; G, K$ _% ]
        AND (
! m9 b+ L; z: v& v) [1 l             name LIKE "2010-09-17%" , m0 E/ i3 O( d! ~/ m4 F
             OR name LIKE "2010-09-16%"
) T3 J, U# x8 B! b            );0 `8 |  O' v  L7 L
或者您可以使用正则表达式:1 g% }  _0 m" x5 I  `  c) d
SELECT fields
9 F2 z; }  ~8 Q* ]8 E3 a. U( S  FROM table
! P( j' R% Z# z WHERE age = "50"
3 d$ ?7 u* J5 X4 d7 u- J       AND name REGEXP "2010-09-17.*|2010-09-16.*";
0 O0 q- c+ H5 u; U或者,巧妙地& Y- m$ q2 l% c, Z
SELECT fields
+ [0 S& w% s4 p4 ]! w% i  FROM table $ o0 B; ~/ q# r: Q
WHERE age = "50"
9 k$ h- K# I  w' D: A       AND name REGEXP "2010-09-1(6|7).*";
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则