如何修复此查询?
IF EXISTS(SELECT * FROM links WHERE age = '10')
SELECT * FROM links WHERE age ='10'ORDER BY
ELSE
SELECT * FROM链接ORDER BY
因此,如果存在10天的链接,那么它将被显示,否则它将是随机的。
答案 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'
运行查询更有意义,然后仅在第一个查询没有返回结果时运行另一个查询。