問題タブ [stored-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3358 参照

php - 「MD5復号化」php関数からMySQLストアド関数へ

PHPサイトで問題を修正しようとしています。PHP関数のペアがあります:

これらは、データベース内のユーザーのIPアドレスを暗号化するために使用されます。$ passwordパラメーターはphp構成ファイルに保存されます(したがって、これらの関数を知っている場合でも、SQLをダンプするだけではIPは提供されません)。

MD5は明らかにハッシュ化されており、bruteforcingのようなものだけがそれを元に戻すことができるので、私はまだそれらに戸惑っています。

PHPの経験が豊富な人は、この復号化がどのように機能するかを説明できますか?暗号化されたテキストは単純なMD5ではないため、そこで何が起こっているのかを理解する必要があるかもしれません。

とにかく、IPによって他のテーブル(国のIP範囲を含むテーブル)を結合し、クエリで国コードのみを返すため、復号化を行うmysqlストアド関数を作成しようとしています。

問題は次のとおりです。MySQL関数を作成したことがありません。しばらくサイクルを作成するにはどうすればよいですか?MySQLに組み込まれていないpackやpreg_replaceのような関数がありますが、どういうわけかそれらを実装する必要がありますか?

(ヒントから完全な機能に至るまで)どんな助けもいただければ幸いです!

「MD5は復号化できません。ハッシュです!」などのコメント 高く評価されません。

0 投票する
1 に答える
3902 参照

mysql - MySQL ストアド集計関数を作成するには?

列に対して集計操作を行うストアド関数を作成する必要があります。中央値としましょう (しかし、実際には、実装したいさまざまな集計関数がたくさんあります)。medBy( col1 col2 col3 )理想的には、各行に対して、これと同じ col2 および col3 値を持つすべての行の col1 値の中央値を返すようなものが必要です。そうすればGROUP BY、クエリ全体を処理する必要はなく、その 1 つの列に繰り返し値を設定するだけです。

この質問 (分位点集計関数の書き方は? ) も同様のことを尋ねましたが、ストアド関数ではなくクエリで回答されました。

私が知りたいのは、ストアド関数が列全体col1と現在の行のcol2andの値に対して動作することを指定するための構文ですcol3


@djacobson:私が見るストアド関数のすべての例は、各パラメーターを単一のスカラー値として扱います。おそらく、私が最初に取り組むべき問題は、集計ストアド関数を宣言する方法です。では、次のような関数が必要だとしましょう:medBy(col1)引数で指定された列の中央値を返します。行ごとに 1 回。したがってSELECT col1 my_values, medBy(col1) my_median FROM foo、そうすると、値の列 ( my_values) と、最初の列の繰り返しの中央値だけである列 ( my_median) が得られます。

ありがとう。

0 投票する
0 に答える
418 参照

mysql - varchar 値を列名として使用して値を選択します

行を削除し、キーと値のペア テーブルにバックアップを作成する mysql 関数を作成しています。ほとんどのことはできますが、取得した列名からの値の選択に失敗します

太字のテキスト (*ed テキスト) は、列名自体を value の代わりに保存します。その列名の値をそのテーブルに格納する必要があります。みんな助けが必要

0 投票する
2 に答える
1162 参照

mysql - 機能:戻り値としてのテーブル

私は通常、MSSQL-Serverを使用して、テーブルのようなデータセットを関数の呼び出し元に返すことができます。これはMySQLでは不可能であることを理解しています。MySQLの最良の方法は何ですか、同じ結果を得るのに良い方法は何ですか。

一時テーブルを使用する必要がありますか?私はすべての答えをうれしく思います。

0 投票する
3 に答える
30374 参照

mysql - ネストされた IF を持つ MySQL ストアド関数... END IF、構文エラー、near '' を使用する正しい構文

私は現在 PHP で使用している関数を持っています。これは、別々のフィールドから郵送先住所をコンパイルしますが、さまざまな地域で使用されるさまざまな形式を考慮に入れています。これをMySQLストアド関数として複製しようとしています。多くの場合、この種のことをデータベースではなくコードで行う方が速いことはわかっていますが、イントラネットには、生の MySQL SELECT コマンドを読み取り専用で入力する方法があり、高度な検索を構築してクエリを保存できます。この特定の関数は、ユーザーが高度な検索クエリの結果をラベル レイアウトに出力できるようにするために使用されます。

phpMyAdmin 3.4.9 (最新の安定版) を使用して関数を保存しようとすると、次のエラーが発生します。

最新のMySQL Workbenchもインストールしましたが、同じエラーが発生しましたが、「'END'近くのSQL構文エラー」も強調表示されているため、phpMyAdminの単なるバグではありません(phpMyAdminとMySQL Workbenchの両方のバグである可能性があります)。

関数クエリは次のとおりです。

51 行目は END IF、RETURN、および END 句の近くにありますが、これに問題があることはわかりません。

MySQL Workbench と phpMyAdmin の両方でこの問題の原因を特定できる人はいますか?
関数を保存したら、それをテストしてロジックを微調整できます。

また、合理化できる機能があれば教えてください。そこには多くの例がないので、これに多少パッチを当てました。

0 投票する
1 に答える
4279 参照

mysql - MySQLの関数からの戻り値

こんにちは私はMySQLで関数を書こうとしています。これにより、テーブルから値が返されます。

エラーが発生しました:

エラーコード:1415。関数から結果セットを返すことは許可されていません

それが何を意味するのかは知っていますが、問題を解決する方法がわかりません。必要なのは、挿入された行のIDという1つの値だけです。助けてくれてうれしいです。

関数の機能は
次のとおりです。ランダム値を使用してaip_requestテーブルに新しい行を挿入します。これにより、挿入後に行を識別できます。関数は、作成された行のIDを返す必要があります。request_idは自動値です。

0 投票する
1 に答える
373 参照

sql-server - SQL ストアド プロシージャ内の SELECT ステートメントと ColdFusion 内の対応するクエリの検索

ColdFusion では、次の cfstoredproc が 3 つの入力と 6 つの出力で呼び出されています。

ストアド プロシージャ内で、si_updateProjectresultSets にリストされている 6 つの resultSet クエリを特定するにはどうすればよいですか? ストアド プロシージャには、いくつかのステートメント (select、updates、delete など) があります。

0 投票する
0 に答える
2218 参照

oracle - JasperReportsに保存されたOracle関数Java iReport

JasperReports にストアド関数を使用したい。

ストアドプロシージャについては、この記事に従いましたhttp://rajendratambat.blogspot.com/2011/10/calling-oracle-stored-procedure-in.html

ただし、ストアド関数についても同様に行う方法。例えば:

iReport Designerでこれを使用してみました:

しかし、うまくいきません。アイデアはありますか?

0 投票する
1 に答える
175 参照

mysql - Mysqlストアドファンクションフリーズ

MySQL にストアド関数があり、部分的に機能します。

クエリを呼び出すと、問題SELECT getsubdomain(p_id) FROM opu_pages;なく動作します。しかし、データベースでそれを呼び出すと、SELECT * FROM opu_pages WHERE getsubdomain(p_id)='library';折りたたまれてフリーズします。クエリと関数は 1 つのテーブルで動作します。私は何を間違えましたか?テーブル形式のMyISAMが原因ではないかと思いました。しかし、このテーブルで FULLTEXTFORMAT フィールドを使用しているため、InnoDB に変更できません。

テーブルopu_pages(MyISAM) スキーム

0 投票する
1 に答える
1781 参照

postgresql - ストアド関数のパラメーターとしてレコードを使用する方法

パラメータとしてレコード タイプを使用したいのですが、関数にレコード タイプ パラメータを指定できないというメッセージが表示されました。Dao渡されたパラメーターに対してさまざまな操作を実行する関数がArraylistあり、ストアド プロシージャに実装する必要があります。したがって、どんな助けも大歓迎です。ありがとう!m が探している関数は次のようなものです。

私はpostgresqlを初めて使用しますが、以前にストアド関数を使用したことがありますが、レコード型パラメーターを使用する必要はありません.