我正在选择文件,但是当名称以特定序列开头时,我希望它也具有像这样的特定字段
select filename from filestable where
filename like '%abc_%' and not filename like '%abc2%'
//这里我不想使用转义字符,只是跳过 abc2 文件名,然后为其创建第二个查询(有点迟钝),因为我重复查询并合并结果
select filename from filestable
inner join filetype on filetype.id = filename.id
where
filename like '%abc2%'
and filetype.type = 'mpeg'
我想将它们都放入一个查询中,并且如果可能?
最佳答案
如果您使用 join
将两者组合起来,那么我认为这是等效的查询:
select distinct ft.filename
from filestable ft left join
filetype fty
on fty.id = ft.id
where (ft.filename like '%abc_%' and not ft.filename like '%abc2%') or
(ft.filename like '%abc2%' and fty.type = 'mpeg');
如果您知道给定filename
的filetype
中没有重复项,则只需使用select
而不是select different
.
关于mysql - SQL 中的 if 语句和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563306/