mysql - 具有相同多列的 SQL 搜索值

标签 mysql sql

我是 SQL 新手。我想要一个返回具有多个共同列的值的查询

我有 t_table :

           filename               |    start            |    stop
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 2016-12-24 00:00:00 | 2016-01-03 00:00:00
 AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB | 2016-12-24 00:00:00 | 2016-01-03 00:00:00
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC | 2016-12-24 00:00:00 | 2016-01-03 00:00:00

我想返回具有共同开始和停止列的文件名,名称类似于“%AAAA%”(前 2 行) CCCC% 具有相同的开始和结束,但名称不像 '%AAAA%

我试过这些答案 Find rows that have the same value on a column in MySQL但我无法得到预期的结果。与:

SELECT  filename ,
        start
FROM    t_table
WHERE   ( start IN ( SELECT start
                     FROM   t_table
                     GROUP BY start
                     HAVING COUNT(*) > 1 ) )
        AND ( filename LIKE '%AAAA%' );

我都得到了...

           filename               |    start            |    stop
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 2016-12-24 00:00:00 | 2016-01-03 00:00:00
 AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB | 2016-12-24 00:00:00 | 2016-01-03 00:00:00
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC | 2016-12-24 00:00:00 | 2016-01-03 00:00:00

代替:

           filename               |    start            |    stop
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 2016-12-24 00:00:00 | 2016-01-03 00:00:00
 AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB | 2016-12-24 00:00:00 | 2016-01-03 00:00:00

你能帮帮我吗?

最佳答案

SELECT t1.filename,
       t1.start,
       t1.stop
FROM t_table t1
INNER JOIN
(
    SELECT start, stop            -- this subquery identifies all start, stop
    FROM t_table                  -- pairs for which 2 or more records share
    GROUP BY start, stop          -- those values
    HAVING COUNT(*) > 1
) t2
    ON t1.start = t2.start AND
       t1.stop  = t2.stop
WHERE t1.filename LIKE '%AAAA%'   -- filename contains 'AAAA'

此处演示:

SQLFiddle

关于mysql - 具有相同多列的 SQL 搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506026/

相关文章:

php - JSON异常: Value of type string cannot be converted to JSON Object?

php - 将发布日期与 Codeigniter 中的时间戳进行比较

c# - 将 SQL 查询转换为 NHibernate 条件查询

mysql - 从其他表中插入一些值

php - 查找拼写最接近的单词

php - 以下场景的流畅查询

mysql - 如何在 mysql 5.7 中使用 sum over partition (without window function)

c# - 多个用户使用的 Winform 应用程序登录

sql - Postgresql 在 json 数组中的数组中搜索

c# - Entity Framework 中的简单查询性能非常差