0

私の(簡略化された)クエリ

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

私は以下のようなものを手に入れます:

名前の都市
バジェットロッジクラレンドンクラレンドン
クラレンドン砲兵レーンロンドン
クラレンドンバービカンスタジオロンドン
クラレンドンブラッシュフィールドセントロンドン
クラレンドンカナリアセントラルロンドン
クラレンドンコマーシャルセントロンドン
クラレンドンコテージサッサフラス
クラレンドンディスカバリードックイーストロンドン
クラレンドングーチハウスロンドン
クラレンドンハウスアンドガーデンズキュー
Clarendon Luxury Apartments Edinburgh
クラレンドンマニングプレイスリッチモンド
クラレンドンマイナーズロンドン
クラレンドンモーテルノースコンウェイ
Clarendon Pepys St London
クラレンドンピューマコートロンドン
クラレンドンスチュワードセントロンドン
クラレンドンヴァインセントロンドン
クラレンドンウェリントンセントロンドン
クラレンドンレイズベリーステーンズ
ホテルクラレンドンケベック
クラレンドンロンドン
クラレンドンバントリーベイケープタウン
ClarendonFresnayeケープタウン
クラレンドンホテルニューカッスル

私が欲しいのはこれです-

col.nameはその順序を維持しますが、col.cityは単語clarendonでエンゲージするcol.nameフラグメントによって順序付けられます。

名前の都市
  バジェットロッジクラレンドンクラレンドン
  Clarendon Luxury Apartments Edinburgh
  クラレンドンハウスアンドガーデンズキュー
  クラレンドン砲兵レーンロンドン
  クラレンドンバービカンスタジオロンドン
  クラレンドンブラッシュフィールドセントロンドン
  クラレンドンカナリアセントラルロンドン
  クラレンドンコマーシャルセントロンドン
  クラレンドンディスカバリードックイーストロンドン
  クラレンドングーチハウスロンドン
  クラレンドンマイナーズロンドン
  Clarendon Pepys St London
  クラレンドンピューマコートロンドン
  クラレンドンスチュワードセントロンドン
  クラレンドンヴァインセントロンドン
  クラレンドンウェリントンセントロンドン
  クラレンドンモーテルノースコンウェイ
  クラレンドンマニングプレイスリッチモンド
  クラレンドンコテージサッサフラス
  クラレンドンレイズベリーステーンズ
  ホテルクラレンドンケベック
  クラレンドンバントリーベイケープタウン
  ClarendonFresnayeケープタウン
  クラレンドンロンドン
  クラレンドンホテルニューカッスル

タイプミスの編集 -もちろん「名前、都市で注文」ですが、質問はまだ有効です

4

3 に答える 3

1

質問は正しくありません。投稿したクエリは、すでに2番目の結果を提供します。

[編集]

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

あなたが持っている最初の結果はORDER BY name, city、(あなたが主張するように)使用していないようですORDER BY city, name

2番目の結果は、次の方法で返すことができます。

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 に答える