ホームページ  >  記事  >  バックエンド開発  >  Go で SET 変数を使用して MySQL クエリを実行できますか?

Go で SET 変数を使用して MySQL クエリを実行できますか?

DDD
DDDオリジナル
2024-10-23 18:27:02697ブラウズ

Can You Execute MySQL Queries with SET Variables in Go?

Go での SET 変数を使用した MySQL クエリ

Go では、MySQL クエリを実行する前に SET 変数を利用すると、次のように宣言することでクエリの効率を高めることができます。

問題

SET 変数を使用してクエリを実行しようとすると、SELECT ステートメントで構文エラーが発生しました。クエリはコンソールでは問題なく実行されましたが、Go で実行すると問題が発生しました。ユーザーは、このようなクエリの実現可能性に疑問を抱き、解決策を求めました。

解決策

この問題は、2 つの重要な変更を組み込むことで解決されました:

  1. DSN 設定: MySQL データベースへの接続に使用される DSN (データ ソース名) には、次のパラメータを含める必要がありました:

    • multiStatements=true: 許可します単一の接続内での複数のクエリの実行。
    • interpolateParams=true: SQL ステートメント内のパラメータの補間を有効にします。
  2. 照合変換:照合順序の不一致に関連するエラーを解決するには、データベースとそのテーブルを utf8mb4_0900_ai_ci 照合順序から utf8mb4_general_ci 照合順序に変換する必要がありました。

結論

指定された DSN を組み込むことでパラメーターを追加し、照合設定の互換性を確保すると、SET 変数を使用したクエリが Go で正常に実行されました。ユーザーはパラメータを複製するという面倒なアプローチを回避し、クエリ効率の向上を実現しました。

以上がGo で SET 変数を使用して MySQL クエリを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。