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は元のタグのイメージの再タグ付けと削除を実装します

推薦する

ファイアウォールルールの設定とコマンド(ホワイトリスト設定)の詳しい説明

1. ファイアウォールルールを設定する例1: ポート8080を外部に公開する ファイアウォールコマン...

Vueモバイル端末の適応化問題の詳細説明

1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

JavaScript のクロージャによって発生する問題を回避する

閉鎖による問題を回避するためのletについてオブジェクト指向の考え方を使用して、購入者情報の削除機能...

vue3.0 sfcのセットアップの変更について簡単に説明します。

目次序文標準的なSFCの書き方スクリプト設定可変露出部品の取り付け小道具カスタムイベント要約する序文...

mysqlは指定された期間内の統計データを取得します

mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...

Vue の計算プロパティ

目次1. 基本的な例2. 計算プロパティキャッシュとメソッド3. 計算プロパティセッター序文:通常、...

さまざまなReact状態マネージャーの解釈と使用方法

まず、状態マネージャーとは何か、そしてそれが何をするのかを知る必要があります。複数のページで同じプロ...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

MySQLは1つのテーブルからデータをクエリし、それを別のテーブルに挿入する実装方法

MySQLは1つのテーブルからデータをクエリし、それを別のテーブルに挿入する実装方法ウェブサイト開発...

border-radius 値の設定に関する質問

問題記録今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のよ...

Window.nameはクロスドメインデータ転送の問題を解決します

<br />原文: http://research.microsoft.com/~hel...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

WeChatアプレット+EChartsで動的更新プロセス記録を実現

序文最近、小さなプログラムでリアルタイムにチャートを更新するという要件に遭遇しました。最初は wx-...