ホームページ > データベース > mysql チュートリアル > MySQL は JavaScript の eval() のように文字列をクエリとして実行できますか?

MySQL は JavaScript の eval() のように文字列をクエリとして実行できますか?

Mary-Kate Olsen
リリース: 2024-11-29 09:35:16
オリジナル
265 人が閲覧しました

Can MySQL Execute a String as a Query Like JavaScript's eval()?

MySQL は文字列をクエリとして実行できますか?

質問:

MySQL 内環境で、EXEC または CALL 経由でクエリとして varchar を渡すストアド プロシージャを実行しようとしています失敗したことが証明されました。これを可能にする、JavaScript の eval 関数に相当する MySQL はありますか?

回答:

はい、次の手法により、JavaScript の eval と同様の MySQL 実装が提供されます。

  1. CONCAT を使用して SQL 変数 (@queryString) を動的に定義します。 varchar パラメータからクエリ文字列を生成します。
  2. PREPARE を使用して、@queryString に基づいてステートメント (stmt) を準備します。
  3. EXECUTE を使用して、準備されたステートメント (stmt) を実行します。
  4. DEALLOCATE PREPARE を使用してプリペアド ステートメントの割り当てを解除します。
  5. SQL をリセットします。変数 (@asd) を NULL に設定します。

例:

SET @queryString = (
SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM (
    SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( 
           SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 
    ) as qwe 
) as www
);

PREPARE stmt FROM @queryString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
SET @asd = NULL;
ログイン後にコピー

以上がMySQL は JavaScript の eval() のように文字列をクエリとして実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート