私は見て見て、試してみましたが、成功しませんでした。私は特定の距離範囲内でユーザーを表示するために使用するクエリを持っています。それは素晴らしいですが、私のusers
テーブルからすべてのユーザーを返します。そして、account_type
の値が '1'に等しいユーザーのみを返すようにします。だから、基本的に異なる種類の勘定科目タイプが私のユーザーテーブルを共有しています。このページでは、1つのタイプのユーザーのみを表示することができます。私は、私が知っている同じテーブルに参加することを含め、あらゆる種類のことを試してきましたが、それは意味がなく、とにかく動作しませんでした。 基本的に、私はこのクエリでWHERE節を追加して 'account_type'という名前の列を確認できる場所を知りたいと思います。経度緯度クエリですが、同じテーブル内の列と一致する行のみ
はここに私の機能クエリです:
:私だけACCOUNT_TYPE = 1を持っているテーブルからユーザーを返すようにしたいのでSELECT `user_id`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users HAVING distance <= '".$dist."' ORDER BY distance
、ノー成功を収めて、以下のさまざまなバリエーションをやってみました
SELECT `user_id`, `account_type`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users ***WHERE `account_type` = '1'*** HAVING distance <= '".$dist."' ORDER BY distance
SELECT `user_id`, `account_type`, (3959 * acos(cos(radians('".$lat."')) * cos(radians(lat)) * cos(radians(lng) - radians('".$lng."')) + sin(radians('".$lat."')) * sin(radians(lat)))) AS distance FROM users HAVING distance <= '".$dist."' ***WHERE `account_type` = '1'*** ORDER BY distance
他にもたくさんありますが、私はこのトピックをこれ以上汚染しません。誰かが私が間違っていることを教えてもらえますか?ありがとうございます
単に「WHERE」だけを使用してみてください。SELECT .........ユーザーaccount_type = '1' AND distance <= '"。dist。" ORDER BY distance " – rhavendc
ありがとう。あなたが言ったことを試してみました。SELECT user_id、account_type、(3959 * acos(radians( '"。$ lat。"'))* cos(radians(lat))* cos(radians(lng) account_type = '1'と距離(距離)からの距離ユーザーからの距離(単位:ラジアン(ラジアン(緯度))) === "dist。" 'ORDER BY distanceとmysqlエラーを取得する – user1000665
あなたのクエリはSELECTか......... WHERE account_type =' 1 'HAVING distance <=' "。$ dist 」「距離による注文」は効果がありますか?それは動作するはずです。 HAVINGの前に 'WHERE'節を置くのは正しいですが、' GROUP BY'がなくても 'HAVING'を使っても構いません。 ** account_typeが1で、テーブルの距離が指定されていないユーザーがいる可能性があります** – rhavendc