質問

この問いは正確な複製のもの

私のしているため、以下のクエリにSQLite3:

SELECT *,
  DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
HAVING "distance" <= ?
ORDER BY "distance" ASC;

私は以下のようなエラー:

SQLSTATE[HY000]:一般的なエラー:1 グループによる条項を求めて 有

かわからないのはなぜSQLiteいうグループの成果だったの

SELECT *,
  DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
GROUP BY "id"
HAVING "distance" <= ?
ORDER BY "distance" ASC;

ともっこ

SELECT *,
  DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
GROUP BY "distance"
HAVING "distance" <= ?
ORDER BY "distance" ASC;

誤りがないが、すべての記録がまとめて返却しても有 "distance" > ?).もったい:

SELECT *,
  DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
  AND "distance" <= ?
ORDER BY "distance" ASC;

同じ出力、すべてのレコードが返されます。私はダブルチェックの距離が正確に算出し...私はその間違ったこのクエリは、誰か助けてくれですか。

役に立ちましたか?

解決

できませんの指定 HAVING 句なしで指定 GROUP BY を提供しています。用途:

  SELECT *, 
         DISTANCE(latitude, longitude, ?, ?) AS dist
    FROM COUNTRY c
   WHERE c.id NOT LIKE ?
     AND DISTANCE(c.latitude, c.longitude, ?, ?) <= ?
ORDER BY dist;

されない場合、呼び出距離は、以下に利用できるサブクエリ:

  SELECT x.*
    FROM (SELECT c.*, 
                 DISTANCE(latitude, longitude, ?, ?) AS dist
            FROM COUNTRY c
           WHERE c.id NOT LIKE ?) x
   WHERE x.dist <= ? 
ORDER BY dist;

他のヒント

よりよい(やく)する考え方もあ削減の選択前に設定を適用する。その結果が、先ほど任天堂さんのようなアプローチ:

SELECT*from場所abs(緯度-51.123) < 0.12や資産担保証券(abs、緯度-経度-0.123) < 0.34る距離(緯度、経度、51.123,0.123)

アクセス(51.123,0.123)を中心緯度経度点だけを検索対比の値が0.12と0.34使って絞込み検索する緯度経度スクエア-オン-領域の適切なサイズ(つまり平nキロメートによるnキロの時点では、地球のサイズに依存して平均分布の箇所)。使える程度の長さの定式から http://en.wikipedia.org/wiki/Longitude どのような動作するように、これらの価値をさらに検索の点の位置は、地球。

では構文エラーが必要になるということがグループは、"ご利用の場合に有原因

検索するとグループは取得の記録のみを有する"距離">)であり、データベースのルールが最初の質といっても難しいことではなくデータと一致するレコードで行うグループによるものですフィルタリング記録によります。いデータのみを有する"距離" <)

題がある可能性がありますが私は間違い

さらに、正しい<日本語仮抄訳>欧州連答え、されない場合、呼び出距離関数回については、別名のWHERE句ます。e:

 SELECT *, 
         DISTANCE(latitude, longitude, ?, ?) AS dist
    FROM COUNTRY c
   WHERE c.id NOT LIKE ?
     AND dist <= ?
ORDER BY dist;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top