SQL のさまざまな状況でバックスラッシュをいくつ記述する必要がありますか?

SQL の特定の部分では、フィールド内の json 文字列を解析する必要がありますが、その中の中国語文字もエンコードされ、同様の形式で保存されます。

u6e38u620f

SQL ステートメントは理論的には次のとおりです

get_json_object(extends,'$.cate')='u6e38u620f'

ただし、実際のシステムの実行には、正しい結果を選択するために何層のコンパイル プロセスが含まれるでしょうか。

実験の結論は次のとおりです。

存在する

spark-hive>

この場合、バックスラッシュを 2 つ入力するだけです

mysql の予約キーワードによって引き起こされる構文エラー

新しい mysql 環境で元のプログラムを実行すると、構文エラーが表示されます。確認すると、mysql のバージョンが mysql8.0.2 以降、予約語になっていることがわかりました。この種の落とし穴を避けるために、今後も使用する必要があります。

You have an error in your SQL syntax...

公式ドキュメント: https://dev.mysql.com/doc/refman/8.0/en/keywords.html

MySQL 接続データベースの localhost が 127.0.0.1 より遅い

php+mysql の開発プロセス中、データベースに接続するためのホスト名を入力する場合、ローカル マシンは通常、localhost または 127.0.0.1 を使用できますが、実際のアプリケーション プロセスでは Linux システムに異常は見つかりませんでした。 Windows サーバー システムでは、localhost を記述すると、Web ページの応答が比較的遅くなり、ページが完了するまでに 1 秒以上かかります。プログラムの実行時間を段階的に判断したところ、問題があることがわかりました。 mysql に接続するとき、接続を確立するのに 1 秒近くかかります。問題がある場合は、この状況が存在することを確認してください。その抜粋は次のとおりです。

HTTP://blog.Sina.com.abilities/是/blog_6cost 5ah 76 毛 0100 一枚絵.HTML

最近、プログラムの応答時間が少し遅いことに気づき、それを徐々に排除し、各プログラムの実行時間を計算しましたが、最終的にはデータベースへのリンクに時間がかかることがわかりました。データベースがあったので、それを置きました。

mysql データのインポートおよびエクスポート時の secure-file-priv オプションの問題を解決する

MySQL データベースがファイルからファイルにインポートまたはエクスポートし、プロンプトが表示されます。MySQL サーバーは --secure-file-priv オプションを使用して実行されているため、このステートメントを実行できません。理由と解決策は次のとおりです。

mysql の一部のバージョンでは、ファイルを介したインポートとエクスポートに制限があり、デフォルトでは許可されていません。

設定を表示し、mysql コマンドを実行します。

SHOW VARIABLES LIKE "secure_file_priv";

値が null の場合、フォルダー ディレクトリが存在する場合、そのディレクトリ内のファイルのみの変更が許可されます (サブディレクトリのテストは機能しません)。

構成を変更するには、mysql 構成ファイルを変更して、

secure_file_priv =

そのようなコンテンツ行がない場合は、手動で追加します。

SQLの複数行マージ関数collect_set、collect_list、concat_ws

データベースからフィールドをN個取り出して、それを結合して「,」で区切って表示するのですが、最初はCONCAT()で処理しようと思ったのですが、意外とCONCAT_WS()が出てきて面倒でした。マニュアル、とても使いやすいです。

CONCAT_WS(separator, str1, str2,...)

これは CONCAT() の特殊な形式で、最初のパラメータは残りのパラメータ間の区切り文字になります。区切り文字が NULL の場合、戻り値も NULL になります。区切り文字パラメータの後に NULL および空の文字列がある場合、連結される文字列の間に区切り文字が追加されます。

簡単な例は次のとおりです。

SQLデータ を購読