はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結します。この関数を使用すると、1 つのステップで取得できなかった SQL を切り出すことができます。作業では非常に便利になる場合があります。以下では、主によく使用されるシナリオをいくつか紹介します。 注: バージョン 5.7 以前のバージョンに適用される場合、若干異なる場合があります。 1. すべてのユーザーに参加してクエリを実行する 選択する 連結( 'ユーザー: \'', ユーザー、 '\'@\''、 ホスト、 '\';' ) クエリとして から mysql.USER; # 連結文字列に ' が出現する場合は、\ エスケープ文字を使用する必要があります 2. DROPテーブルを結合する 選択 連結( 'テーブルを削除'、 テーブル名、 ';' ) から 情報スキーマ。テーブル どこ TABLE_SCHEMA = 'テスト'; 3. スプライスキル接続 選択 concat('KILL ', id, ';') から 情報スキーマ。PROCESSLIST どこ STATE LIKE 'ソートインデックスを作成しています'; 4. ステートメントを結合してデータベースを作成する 選択 連結( 'データベースを作成'、 '`', スキーマ名、 '`', 「デフォルトの文字セット」、 デフォルト文字セット名、 ';' ) AS CreateDatabaseQuery から 情報スキーマ.SCHEMATA どこ SCHEMA_NAME が ( '情報スキーマ', 'パフォーマンススキーマ', 'mysql', 'システム' ); 5. ステートメントを連結してユーザーを作成する 選択 連結( 'ユーザーを作成 \'', ユーザー、 '\'@\''、 ホスト、 '\'' ' パスワードで識別 \'', 認証文字列、 '\';' ) AS CreateUserQuery から mysql.`ユーザー` どこ `User` が ( にありません '根'、 'mysql.セッション', 'mysql.sys' ); # パスワード文字列があります。他のインスタンスで実行することで、このインスタンスと同じパスワードを持つユーザーを直接作成できます。 6. エクスポート許可スクリプト このシェルスクリプトもスプライシングを使用しています #!/bin/bash #関数ユーザー権限のエクスポート pwd=あなたのパスワード 外国人移住者() { mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@'''', host, ''';' ) AS query FROM mysql.user" | \ mysql -u'root' -p${pwd} $@ | \ sed 's/\(GRANT .*\)/\1;/;s/^\(.*\ の許可)/-- \1 /;/--/{x;p;x;}' } expgrants > /tmp/grants.sql echo "権限をフラッシュします。" >> /tmp/grants.sql 7. ルックアップテーブルの断片化 t.TABLE_SCHEMAを選択します。 t.テーブル名、 t.TABLE_ROWS、 concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') ASサイズ、 t.インデックス長さ、 concat(round(t.DATA_FREE / 1024 / 1024, 2), 'M') AS データフリー information_schema.tables t から WHERE t.TABLE_SCHEMA = 'test' order by DATA_LENGTH desc; 8. 主キーのないテーブルを探します。これはスプライシングには使用されないので、共有します。 #特定のライブラリ内の主キーのないテーブルを検索するSELECT テーブルスキーマ、 テーブル名 から 情報スキーマ.TABLES どこ テーブルスキーマ = 'テスト' かつ、TABLE_NAME が ( 選択 テーブル名 から 情報スキーマ.テーブル制約 JOIN information_schema.key_column_usage k USING ( 制約名、 テーブルスキーマ、 テーブル名 ) どこ t.constraint_type = '主キー' かつ t.table_schema = 'test' ); #システムライブラリ以外の主キーのないテーブルを検索するSELECT t1.テーブルスキーマ、 t1.テーブル名 から 情報スキーマ。テーブル t1 LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA かつ t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME IN ('PRIMARY') どこ t2.table_name が NULL です かつ、t1.TABLE_SCHEMA が ( '情報スキーマ', 'パフォーマンススキーマ', 'mysql', 'システム' ) ; 上記はMySQLでよく使われる連結文の詳しい内容です。MySQLの連結文についてさらに詳しく知りたい方は、123WORDPRESS.COMの他の関連記事もぜひご覧ください! 以下もご興味があるかもしれません:
|
<<: Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します
>>: JavaScript の async と await のシンプルで詳細な学習
設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...
Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...
この記事では、ウェブ計算機のマインスイーパゲームを実装するためのJavaScriptの具体的なコード...
この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...
Web 標準に準拠した Web ページの構築は、jb51.net が常に全員と議論しているトピックで...
目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...
この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...
最近、React プロジェクトで初めてhtml-webapck-pluginプラグインを使用しました...
序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...
目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...
1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...
以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...
MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...
npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...
要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....