如果存在ELSE?

时间:2013-08-27 20:34:03

标签: mysql mysqli

如何修复此查询?

IF EXISTS(SELECT * FROM links WHERE age = '10')

SELECT * FROM links WHERE age ='10'ORDER BY

ELSE

SELECT * FROM链接ORDER BY

因此,如果存在10天的链接,那么它将被显示,否则它将是随机的。

2 个答案:

答案 0 :(得分:1)

您有两个不同的查询 - 使用union:

 SELECT *
 FROM links
 WHERE age = '10'
 UNION ALL
 SELECT *
 FROM links
 WHERE NOT EXISTS (SELECT * FROM links WHERE age='10')
 ORDER BT RAND()

答案 1 :(得分:0)

我想你可以写:

SELECT *
  FROM links
 WHERE age = '10'
    OR NOT EXISTS
        ( SELECT 1
            FROM links
           WHERE age = '10'
        )
 ORDER
    BY RAND()
 LIMIT 1
;

。 。 。但我不确定它会表现得多好。 可能使用WHERE age = '10'运行查询更有意义,然后仅在第一个查询没有返回结果时运行另一个查询。