MYSQL 文字列強制変換メソッドの例

MYSQL 文字列強制変換メソッドの例

序文

2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするため、クエリではインデックスが使用されず、速度が非常に遅くなります。

強制移送

直接的な例を挙げてみましょう。

テーブルIDはint型、テーブルIDはchar型です

intに変換する場合は符号付き

charに変換する場合はchar

注意: 変換するタイプは、左結合後のテーブルのフィールドである必要があります。そうでない場合、インデックスは使用されません。

結合テーブルのフィールド タイプが不一致であるため、インデックスは使用されません。

A から t.* を選択し、B t1 を t.id = t1.id で結合します。

最初の変換タイプ

A から t.* を選択し、B t1 を t.id に結合します = cast(t1.id を署名済みとして)

2番目の変換タイプ

A から t.* を選択し、B t1 を t.id に結合します = convert(t1.id, signed)

アブ=fg

しかし、2 つのフィールド b と g には異なるソート規則があります。b は utf8_general_ci、g は utf8_unicode_ci です。これらが等しい場合、SQL はエラーを報告します。そこで、上司に助けを求めました。書き方は次のとおりです。

変換 (utf8 を使用) COLLATE utf8_unicode_ci = fg

テーブルにインデックスが付けられていない場合、フィールドはクエリ内で変換されます。例:

a.*からaを選択
LEFT JOIN (SELECT b.*, CONVERT (ab USING utf8) COLLATE utf8_unicode_ci = fg FROM b) a ON ab = fg

CONVERT(user_id USING utf8) COLLATE utf8_general_ci as user_id

MYSQL 文字列変換に関するこの記事はこれで終わりです。MYSQL 文字列変換の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLの日付文字列タイムスタンプ変換の詳細な説明
  • PHP で画像 gif、jpg、または mysql longblob または blob フィールド値を 16 進文字列に変換する
  • mysql 文字列 '123' を数値 123 に変換する例

<<:  4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

>>:  Dockerは元のタグのイメージの再タグ付けと削除を実装します

推薦する

Nginxのアクセス制限設定の詳細な説明

Nginxのアクセス制限設定とはNginx のアクセス制限は、IP ベースのアクセス制御とユーザーベ...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...

ウェブデザインにおけるグリッドシステム

グリッドシステムの形成1692年、新しく即位したフランス国王ルイ14世は、フランスの印刷技術のレベル...

MySQL ページング分析の原理と効率改善

MySQL ページング分析の原理と効率改善PERCONA PERFORMANCE CONFERENC...

MySQLテーブルの内容の変更を監視し、MySQL binlogを有効にする

序文binlog は、MySQL のすべての追加、削除、および変更ステートメントを記録するバイナリ ...

MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?

目次クエリの背景1. クエリをいいね2. JSON関数クエリ3. 共同インデックスクエリ4. 全文イ...

Vue 開発ツリー構造コンポーネント (コンポーネント再帰)

この記事では、Vue開発ツリー構造コンポーネントの具体的なコードを例として紹介します。具体的な内容は...

Centos7.4 環境に lamp-php7.0 をインストールするチュートリアル

この記事では、Centos7.4 環境に lamp-php7.0 をインストールする方法について説明...

Vue はシェイク機能を実装します (ios13.3 以降と互換性があります)

最近、shake.jsを使用して、shakeに似た機能を作成しました。ただし、shake機能はios...

入力が正しいにもかかわらず、MySQL 8.0 でアクセスが拒否される問題を解決する

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...

Linux システムでのユーザー管理の概要

目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...

Vue Element-ui フォーム検証ルールの実装

目次1. はじめに2. ルール検証の入力モード2.1 サンプルコード2.2、フォーム項目2.3. 小...

ページコンテンツ全体を中央に配置して、高さがコンテンツに合わせて自動的に拡張されるようにする方法

ページコンテンツ全体を中央に配置する方法と、コンテンツに合わせて高さを自動的に拡大縮小する方法。これ...

Docker のインストールと構成イメージの高速化の実装

目次DockerバージョンCentOS に Docker エンジンをインストールするシステム要件古い...

Vue プロジェクトで mock.js を使用するための完全な手順

Vue プロジェクトで mock.js を使用する開発ツールの選択: Vscode 1. コマンドラ...