CREATE TABLE Countries(location varchar(255), country varchar(255))
INSERT INTO Countries(location, country)
VALUES('Arkansas', 'US'),
('Newyork', 'US'),
('New Jersey', 'US'),
('Tokyo', 'JP'),
('Yokohama', 'JP'),
('Chennai', 'IN'),
('Delhi', 'IN'),
('Sydney', 'AU'),
('Melbourne', 'AU');
Run Code Online (Sandbox Code Playgroud)
我需要查询以下输出
Location | Country
--------------------------------
Arkansas US
Tokyo JP
Chennai IN
Sydney AU
Newyork US
Yokohama JP
Delhi IN
Melbourne AU
New Jersey US
Run Code Online (Sandbox Code Playgroud)
如果没有id. 您可以这样创建表:
CREATE TABLE Countries(
id INT NOT NULL AUTO_INCREMENT,
location varchar(255),
country varchar(255),
PRIMARY KEY(ID))
Run Code Online (Sandbox Code Playgroud)
然后你可以插入你的数据:
INSERT INTO Countries(location, country)
VALUES('Arkansas', 'US'),
...
Run Code Online (Sandbox Code Playgroud)
然后我会使用标准 SQL 编写查询,如下所示:
SELECT *
FROM Countries c1
ORDER BY (select count(*)
from countries c2
where c1.country=c2.country
and c1.id>c2.id), id
Run Code Online (Sandbox Code Playgroud)
这个查询可能不快,但它会起作用。但如果不使用 anid就无法回答你的问题。SQL 表没有默认顺序,因此如果没有默认顺序,则id无法判断,例如,悉尼排在墨尔本之前,即使它是先插入的。