0

複数の列を受け入れ、各行で何らかの操作を行う、SUM、MAX などのカスタム関数を mysql で作成することは可能ですか?

この質問をしている理由は、ストアド プロシージャを使用してロジックを実行しようとしたが、残念ながら、テーブルの名前が入力パラメーターであるテーブル名からデータを選択する方法が見つからなかったためです。

誰かが動的SQLを使用することを提案しましたが、カーソルを取得できません。したがって、私の唯一の希望は、カスタム定義関数を使用することです。

10倍前。

PS

ここで質問をより明確にするために、私がやりたいことは次のとおりです。

データベース テーブルの各行が座標 (緯度と経度) を表すルートの距離を計算したいと考えています。残念ながら、私が持っているデータは非常に大きく、データをクエリしてJavaを使用して計算を行うと、データをWebサーバーに転送するのに30分以上かかるため、SQLマシンで計算を行いたい.

4

1 に答える 1

0

テーブル名が変数である table_name から something1、something2 を選択します

複数の同じ構造のテーブル (この種のクエリの前提条件) は、直交設計の原則に反します。

しないでください少なくとも非常に正当な理由がないわけではありません。適切なインデックスを使用すると、テーブルごとに (数千万) のレコードがあれば、MySQL はパーティショニングを必要とせずに簡単に処理できます。また、データを分割する必要がある場合でも、この手動のクラッジよりも優れた方法があります (あいまいで一貫性のないデータが発生し、データ操作コードの冗長性と複雑さが生じる可能性があります)。

于 2013-10-11T21:44:20.717 に答える