请考虑以下查询:
SELECT item.*, address_book.Country
FROM item
INNER JOIN address_book
ON item.addressbook_id=address_book.idaddress_book and address_book.Country="USA" order by rand() limit 100; ;
之后我通常会做的是,如果我没有得到任何结果来运行另一个查询,而对国家没有任何限制(这样我就会得到所有国家)。
如果我得到结果但它们小于 100,我会重新运行所有国家/地区的第二个查询,但有限制(100-myexistingnoofresults)
有没有办法只使用第一个查询并以某种方式对其进行修改,以便第一个 x 结果为 USA(根据示例),其余为 USA,如果不存在“USA”的结果以显示其他任何内容。
另外,如果可能的话,我想随机显示结果。