mysql - SQL 中的 if 语句和

标签 mysql sql database

我正在选择文件,但是当名称以特定序列开头时,我希望它也具有像这样的特定字段

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');

如果您知道给定filenamefiletype中没有重复项,则只需使用select而不是select different .

关于mysql - SQL 中的 if 语句和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563306/

相关文章:

mysql - 从 bash 脚本更新 mysql 数据库中的数据

mysql - 错误代码 : 1064. 您的 SQL 语法有错误;检查与您的 MySQL 服务器对应的手册

mysql - 更改一行 mysql 查询中的一个值并更新一个新值

java - PostgreSQL 多个 'WHERE' 条件(1000+)请求

java - 在 Play 中捕获配置错误!框架 2.0.4

mysql - 从命令行连接时,用户访问被拒绝...

sql - 这个简单的 SQL 查询有什么理由这么慢吗?

SQL向表中添加一列,使用case语句

c# - T-SQL LIKE与ASP.net参数中的通配符

php - 跟踪每月付款数据库结构