0

我的(简化的)查询

SELECT name, city FROM some.tbl WHERE name LIKE "%clarendon%" ORDER BY city, name

我得到如下信息:

命名城市
克拉伦登经济旅馆 克拉伦登
克拉伦登炮兵巷伦敦
克拉伦登巴比肯工作室伦敦
克拉伦登布拉什菲尔德街伦敦
克拉伦登加那利伦敦市中心
克拉伦登商业街伦敦
Clarendon Cottages 檫木
克拉伦登探索码头东伦敦
克拉伦登古奇之家伦敦
克拉伦登之家和花园邱园
克拉伦登豪华公寓 爱丁堡
Clarendon Manning Place 里士满
克拉伦登矿业伦敦
克拉伦登北康威汽车旅馆
克拉伦登佩皮斯街伦敦
Clarendon Puma Court 伦敦
克拉伦登管家圣伦敦
克拉伦登藤街伦敦
克拉伦登威灵顿街伦敦
克拉伦登·雷斯伯里斯坦斯
克拉伦登酒店 魁北克
伦敦克拉伦登酒店
克拉伦登班特里湾开普敦
The Clarendon Fresnaye 开普敦
纽卡斯尔克拉伦登酒店

我想得到的是这个——

col.name 保持其顺序,但 col.city 由 col.name 片段排序,其中包含单词 clarendon:

命名城市
  克拉伦登经济旅馆 克拉伦登
  克拉伦登豪华公寓 爱丁堡
  克拉伦登之家和花园邱园
  克拉伦登炮兵巷伦敦
  克拉伦登巴比肯工作室伦敦
  克拉伦登布拉什菲尔德街伦敦
  克拉伦登加那利伦敦市中心
  克拉伦登商业街伦敦
  克拉伦登探索码头东伦敦
  克拉伦登古奇之家伦敦
  克拉伦登矿业伦敦
  克拉伦登佩皮斯街伦敦
  Clarendon Puma Court 伦敦
  克拉伦登管家圣伦敦
  克拉伦登藤街伦敦
  克拉伦登威灵顿街伦敦
  克拉伦登北康威汽车旅馆
  Clarendon Manning Place 里士满
  Clarendon Cottages 檫木
  克拉伦登·雷斯伯里斯坦斯
  克拉伦登酒店 魁北克
  克拉伦登班特里湾开普敦
  The Clarendon Fresnaye 开普敦
  伦敦克拉伦登酒店
  纽卡斯尔克拉伦登酒店

编辑 错字-当然是“按名称,城市排序”,但问题仍然有效

4

3 回答 3

1

问题不正确。您发布的查询已经为您提供了第二个结果。

[编辑]

ORDER BY
  substr(name, 1, 9), city, name
于 2012-10-19T22:35:16.690 回答
0

您拥有的第一个结果似乎正在使用ORDER BY name, city而不是(如您声称的那样)ORDER BY city, name

第二个结果可以通过以下方式返回:

SELECT name, city 
FROM some.tbl 
WHERE name LIKE "%clarendon%" 
ORDER BY SUBSTRING_INDEX(name, 'Clarendon', 1)
       , city
       , name ;
于 2012-10-19T22:43:32.953 回答
-1

此查询简单查询可满足您的需求:

SELECT name, city 
FROM some.tbl 
WHERE name LIKE "%clarendon%" 
ORDER BY name ASC, city ASC
于 2012-10-19T22:35:07.687 回答