問題タブ [mysql-udf]
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.
mysql - MySQLで正規表現を置き換える方法は?
〜50万行のテーブルがあります。varchar(255) UTF8 列filename
にはファイル名が含まれます。
ファイル名からさまざまな奇妙な文字を取り除こうとしています-文字クラスを使用すると思いました:[^a-zA-Z0-9()_ .\-]
さて、MySQL に正規表現で置換できる関数はありますか? REPLACE() 関数と同様の機能を探しています-簡単な例は次のとおりです。
REGEXP/RLIKEについては知っていますが、それらは一致があるかどうかのみを確認し、一致が何であるかは確認しません。
( PHPSELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'
スクリプトpreg_replace
から「UPDATE foo ... WHERE pkey_id=...
_
mysql - jsonを操作するためのMySQL UDF?
MySQL に json データを処理するための適切な UDF はありますか。これは、json で特定の値を取得する機能 (ドット表記キーによる - EG: json_get('foo.bar.baz')) と、設定する機能をサポートしていますか?特定のキーの値 - 例: json_set('foo.bar.baz', 'value')?
http://www.mysqludf.org/lib_mysqludf_json/を見つけましたが、json 列の値とやり取りするのではなく、json 以外の列の値から json データ構造を作成する機能しか提供していないようです。
mysql - MySQL UDF sys_exec
sys_exec
MySQLのトリガー内でJavaプログラムを呼び出すためにMySQLUDF関数を使用しています。sys_exec
Javaプログラムを呼び出すために引数を渡す方法についての情報を教えてください。
php - REGEX 検索と置換を行う MySQL UDF
こんにちは、open.uwec.edu の新しい Web 開発者です。最近、Web サーバーを切り替える必要があり、いくつかの課題に遭遇しました。私たちの古い MySQL サーバーは、preg_replace と呼ばれる lib_mysqludf_preg ライブラリーの関数を使用して、正規表現の検索とマッチングを行いました。lib_mysqludf_preg.dll および libpcre.dll と呼ばれる「MySQL Server 5.1/lib/plugin」フォルダーに、いくつかの .dll が既にコンパイルされていました。
これらのdllを「MySQL Server 5.6/lib/plugin」の新しいサーバーにコピーして、次のようにすると...
MySQL 193 フォーマット エラーが発生します...
このライブラリの github リポジトリのガイドをhttps://github.com/mysqludf/lib_mysqludf_preg/blob/testing/doc/INSTALL.windowsで見ましたが、リンクは pcre のような適切なファイルに移動しません。 dll、そしてそれは私には意味がありません。この preg ライブラリを最初からコンパイルする必要がありますか? それを使用する私の関数は次のようになります。
私たちのサイトは、php codeigniter フレームワークを利用しています。MySQL での UDFS の経験はほとんどないので、十分な情報を提供できれば幸いです。ありがとうございました。
mysql - where句のmysql udf json_extract - パフォーマンスを向上させる方法
mysql データベースで json データを効率的に検索するにはどうすればよいですか?
labs.mysql.com から extract_json udf をインストールし、2.750.000 エントリのテスト テーブルをいじってみました。
JSON フィールドの例は次のようになります。
json_extract を select ステートメントに入れても、パフォーマンスへの影響はほとんどないことがわかりました。つまり、次の select は (ほぼ) 同じパフォーマンスを発揮します。
ただし、json_extract 式を where 句に入れるとすぐに、実行時間が 10 倍以上増加します (2.5 秒から 30 秒になりました)。
この時点で、挿入時に検索したいすべての情報を個別の列に抽出する必要があると考えています。本当にjsonデータを検索する必要がある場合は、最初に検索する行数を絞り込む必要があります他の基準によるものですが、明らかなものを見逃していないことを確認したいと思います。たとえば、どうにかして json フィールドにインデックスを付けることができますか? または、select ステートメントの記述が非効率的ですか?
mysql - CentOS x64 に mysqludf ライブラリをインストールする
MySQLライブラリをインストールしようとしている問題について、私はよくグーグルで調べてきました。
https://github.com/mysqludf/lib_mysqludf_sysからライブラリ ファイルをダウンロードし、次の場所にある digitalocean サーバー (CentOS x64 上で実行) に配置しました: /usr/lib64/mysql/plugin
ライブラリの Makefile が変更されたため、次のようになりました。
次のコマンドを使用してターミナルからライブラリをインストールしようとすると:
次のエラーが表示されます。
このエラーをグーグルで検索すると、この潜在的な解決策が見つかりましたが、役に立ちませんでした。誰かがこの問題を解決するのを手伝ってくれますか?
mysql - この MySQL UDF を作成することができません
この関数を作成しようとすると、さまざまなエラー コードが表示されます。最近では、「1064 - SQL 構文にエラーがあります。使用する正しい構文については、MariaDB サーバーのバージョンに対応するマニュアルを確認してください。 2 行目の '' 付近
私が間違っていることについての手がかりはありますか?
mysql - エラー 1126 (HY000): 共有ライブラリ 'lib_mysqludf_sys.so' を開けません (errno: 193 )
32 ビットの Microsoft Windows XP (Professional Version 2002 Service Pack 3) で動作する MySQL 5.6.11 を使用しています。sys_exec
MySQL UDFのインストールに興味があります。
次のコマンド、
は、次のプラグインの場所を示しています。
貼り付けたところlib_mysqludf_sys.so
。次に、次のコマンドを実行します。
MySQL コマンド ラインから次のエラーが発生します (root ユーザーでログインし、作成済みのデータベースを選択した後)。
エラー 1126 (HY000): 共有ライブラリ 'lib_mysqludf_sys.so' を開けません (errno: 193 )
このエラーを修正するにはどうすればよいですか?
msvcp110.dll
の下に必要C:\WINDOWS\system32
ですか? そこでは利用できません。msvcp100.dll
ただし、ファイルはC:\WINDOWS\system32
.
mysql - curl などのネイティブ オペレーティング システムのコマンドを実行して、MySQL を介して HTTP GET 要求を呼び出す
32 ビットの Microsoft Windows XP (Professional Version 2002 Service Pack 3) で動作する MySQL 5.6.11 を使用しています。MySQL sys_exec
UDF をインストールしました。私は 32 ビット Windows で実行しているので、このlib_mysqludf_sys.dllC:\Program Files\MySQL\MySQL Server 5.6\lib\plugin\
を使用しました (デフォルトのインストールであるため、以下に配置されています)。
その後、次のコマンドを実行しました(作成済みのデータベースにログインした後)。
次のように、すでに PL/SQL ストアド プロシージャを作成していました。
このプロシージャは、データベース トリガーによって呼び出されることが想定されており (これは適切に行われています)、したがって、このストアド プロシージャがトリガーによって実行された場合、前述の URL で HTTP GET 要求を発生させる必要がありますが、URL で HTTP GET 要求は発生しません。とあるイベントで。
コマンド ラインで手順を手動で実行しても、次のように成功します。
sys_exec()
関数は1
次のように成功フラグを返します。
GlassFish (4.1) アプリケーション サーバー上で実行されている Java サーブレットが既に存在し、次のようにこの HTTP GET 要求をリッスンすることになっています。
System.out.println("PushCountry called.");
メソッド内の行はdoGet()
、上記の MySQL が実行されると、サーバー端末で何も生成されません (実行/呼び出しされないため)。
MySQL を使用してこれを行うのは現実的ではありませんか、他に不足している可能性があるものはありますか、それとも古い EOL ダイナソー : Windows XP ですか?
私が使用している共有ダイナミック リンク ライブラリは適切でない可能性があります。これが私を超えている場合は、明確にしてください。
編集:
入るときは、
MySQL は、次のエラー レポートで終了またはクラッシュします。
このダイアログを閉じると、MySQL は次のエラー メッセージを残します。
エラー 2013 (HY000): クエリ中に MySQL サーバーへの接続が失われました
システム自体が再起動されるまで、または再起動されない限り、再接続に失敗します。
おそらく、後でオペレーティング システム自体を再インストールすることを考えるでしょう。
mysql - MySQL に保存されている JSON デコード配列パラメータに値を追加します
いくつかの条件に従って、MySQL テーブルに格納されている複数のレコードの特定の JSON デコード配列値にゼロを追加する方法を考え出そうとしています。
たとえば、テーブル 'menu' の列 'params'(text) には、次の形式の JSON デコード配列を含むレコードがあります。
列「id」の数値は 90 です。
私の目標は、(たとえば)menu.idが100未満の場合は常に、menu.paramsの「カテゴリ」値にゼロを追加することです.
このレコードの結果は
そのため、データベースで "categories": ["999"] の出現箇所を検索して見つけ、値の末尾にゼロを追加してレコードを更新する SQL クエリを探しています。
この回答は、 mysql-udf-regexp の使用を提案することで部分的に役立ちますが、UPDATE ではなく値の REPLACE を参照しています。おそらくREGEXP_REPLACE?関数はそのトリックを行います。私はこのライブラリを使用したことがなく、それに慣れていません。おそらく、必要なものを達成するためのより簡単な方法がありますか?
ありがとう