mysql 如何OR两个LIKE语句?

zbwhf8kr  于 2023-03-17  发布在  Mysql
关注(0)|答案(8)|浏览(131)

我试过以下两种说法:

  • SELECT col FROM db.tbl WHERE col (LIKE 'str1' OR LIKE 'str2') AND col2 = num导致语法错误
  • SELECT col FROM db.tbl WHERE page LIKE ('str1' OR 'str2') AND col2 = num导致“截断不正确的DOUBLE值:str1”和“截断了不正确的DOUBLE值:str2”来获取看起来像是每个结果的内容。但是,实际上没有返回任何结果。

我以为这两个说法中有一个会起作用,但他们没有。

yrdbyhpb

yrdbyhpb1#

SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = num
aydmsdu9

aydmsdu93#

在字符串的开头和结尾使用%,这样它也会检查子字符串

SELECT col FROM db.tbl WHERE (col LIKE '%str1%' OR col LIKE '%str2%') AND col2 = num
px9o7tmv

px9o7tmv4#

我猜你想要的是

SELECT col FROM db.tbl WHERE col LIKE '%str[12]%' AND col2 = num

这将查找所有满足以下条件的情况(col如%str1%或col如%str2%)AND col2 = num

a7qyws3x

a7qyws3x5#

简单想想:

SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = ...
dojqjjoe

dojqjjoe6#

“OR”运算符适用于表达式。“LIKE 'str1'"和“LIKE 'str2'"不是有效的表达式,因为“LIKE”运算符同时需要左手边和右手边。

page LIKE ('str1' OR 'str2')

将首先尝试对“str1”和“str2”进行OR运算,得到值TRUE。然后尝试计算page LIKE TRUE,并报告错误。

pdkcd3nj

pdkcd3nj7#

尝试

SELECT col FROM db.tbl WHERE (col LIKE 'str1' or col LIKE 'str2') AND col2 = num
j7dteeu8

j7dteeu88#

在SQL的最新版本中,可以使用IN运算符:

SELECT col FROM db.tbl WHERE col IN('str1','str2') AND col2 = num

相关问题