【问题标题】:how to return row count of mysql sub query如何返回mysql子查询的行数
【发布时间】:2011-09-02 22:04:22
【问题描述】:

我有以下 SQL 查询:

SELECT games.id, games.GameTitle FROM games 
WHERE EXISTS (
              SELECT filename FROM banners 
              WHERE banners.keyvalue = games.id 
                AND banners.filename LIKE '%front%'
             )

这对我的使用不太正确

我想要的是这样的:

SELECT games.id, games.GameTitle 
FROM games WHERE EXISTS (
    COUNT(SELECT filename FROM banners 
    WHERE banners.keyvalue = games.id AND banners.filename LIKE '%front%') > 1
    )

即仅当子查询检索超过 1 行时才选择。

【问题讨论】:

    标签: mysql sql subquery


    【解决方案1】:

    就是这样:

    SELECT games.id, games.GameTitle 
    FROM games 
    WHERE (
        SELECT COUNT(filename)
        FROM banners
        WHERE banners.keyvalue = games.id AND banners.filename LIKE '%front%'
    ) > 1
    

    【讨论】:

    • @Mike 因为在原始查询中选择了filename,所以我保留了它。 @Alex 很高兴我能帮上忙:=
    【解决方案2】:
    SELECT games.id, games.GameTitle 
        FROM games 
        WHERE EXISTS (SELECT COUNT(filename) 
                          FROM banners 
                          WHERE banners.keyvalue = games.id 
                              AND banners.filename LIKE '%front%'
                          HAVING COUNT(filename)>1)
    

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多