我有一个MySQL表格,其中包含以下数据(简化):
INSERT INTO `stores` (`storeId`, `name`, `country`) VALUES
(1, 'Foo', 'us'),
(2, 'Bar', 'jp'),
(3, 'Baz', 'us'),
(4, 'Foo2', 'se'),
(5, 'Baz2', 'jp'),
(6, 'Bar3', 'jp');
现在,我希望能够获取一个分页的商店列表,以客户所在国家为起点。
例如,美国客户将看到以下列表:
Foo
Baz
Bar
Foo2
Baz2
Bar3
我现在正在使用的天真解决方案(以一个美国客户和页面大小为3的例子):
(SELECT * FROM stores WHERE country = "us") UNION (SELECT * FROM stores WHERE country != "us") LIMIT 0,3
有没有更好的方法来做这件事?可以使用ORDER BY
并告诉它将某个值放在顶部吗?