在 mysql 查询中结合 Not In 和 like 函数
combine Not In and like function in mysql query
我想知道有没有办法将 not in()
函数与 like
或 MySQL 中的通配符 *
合并?如以下查询:
select sl_tags from tablname
where `sl_tags` not in ('%Soccer%','%Football%','%Hockey%','%shinny%','%Basketball%','%Volleyball%','%Cricket%')
以上查询无效。
我知道这行得通
select sl_tags from tablname where `sl_tags` Not like '%Soccer%' and `sl_tags` Not like '%Football%'
我在堆栈上看到了以前的问答,没有找到相关的答案。
否,但您可以使用 not like
:
select sl_tags
from tablname
where sl_tags Not like '%Soccer%', and
sl_tags Not like '%Football%' and
sl_tags Not like '%Hockey%', and
sl_tags Not like '%shinny%' and
sl_tags Not like '%Basketball%' and
sl_tags Not like '%Volleyball%' and
sl_tags Not like '%Cricket%';
您没有提供信息,但列名表明您在 sl_tags
列中存储标签列表。这不是最好的方法。您应该有一个单独的 table,在您的原始数据中每行包含一个标签。结点 table 上的查询会更简单。
不,没有这样的运算符。
但是您可以使用 Regular Expressions
以稍微不同的方式执行此操作
SELECT sl_tags
FROM tablname
WHERE sl_tags NOT REGEXP 'Soccer|Football|Hockey|shinny|Basketball';
请注意,某些字符(如点 .
)具有特殊含义,需要 escaped 才能按字面意思使用。
我想知道有没有办法将 not in()
函数与 like
或 MySQL 中的通配符 *
合并?如以下查询:
select sl_tags from tablname
where `sl_tags` not in ('%Soccer%','%Football%','%Hockey%','%shinny%','%Basketball%','%Volleyball%','%Cricket%')
以上查询无效。
我知道这行得通
select sl_tags from tablname where `sl_tags` Not like '%Soccer%' and `sl_tags` Not like '%Football%'
我在堆栈上看到了以前的问答,没有找到相关的答案。
否,但您可以使用 not like
:
select sl_tags
from tablname
where sl_tags Not like '%Soccer%', and
sl_tags Not like '%Football%' and
sl_tags Not like '%Hockey%', and
sl_tags Not like '%shinny%' and
sl_tags Not like '%Basketball%' and
sl_tags Not like '%Volleyball%' and
sl_tags Not like '%Cricket%';
您没有提供信息,但列名表明您在 sl_tags
列中存储标签列表。这不是最好的方法。您应该有一个单独的 table,在您的原始数据中每行包含一个标签。结点 table 上的查询会更简单。
不,没有这样的运算符。
但是您可以使用 Regular Expressions
以稍微不同的方式执行此操作SELECT sl_tags
FROM tablname
WHERE sl_tags NOT REGEXP 'Soccer|Football|Hockey|shinny|Basketball';
请注意,某些字符(如点 .
)具有特殊含义,需要 escaped 才能按字面意思使用。