MySql カンマ連結文字列クエリの 2 つの方法

MySql カンマ連結文字列クエリの 2 つの方法

次の2つの関数は、 FIND_IN_SETと同じように使用されます。使用する場合、 FIND_IN_SET FIND_PART_IN_SETまたはFIND_ALL_PART_IN_SETに置き換えるだけです。

例えば、フィールドは1、2、3、4、5

方向:

最初のものは1、3、6を渡して調べます

FIND_PART_IN_SET('1,3,6','1,2,3,4,5') で XXX から * を選択

2番目のタイプは1、3、6を通過しますが、見つかりません

FIND_ALL_PART_IN_SET('1,3,6','1,2,3,4,5') で XXX から * を選択

関数:

1つ目のタイプ:いずれか1つが含まれていれば検出可能

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1 テキスト、str2 テキスト)
 戻り値テキスト
始める
 # カンマで区切られた 2 つの文字列を渡し、最初の文字列を分割した後の 1 つの文字が 2 番目の文字列に含まれているかどうかを判断します。DECLARE CURRENTINDEX INT; # 現在の添え字 DECLARE CURRENTSTR text;
結果を int として宣言します。
結果を 0 に設定します。
CURRENTINDEX = 0 を設定します。
CURRENTSTR = '' を設定します。
str1がNULLでなく、str1 != ''の場合
 SET CURRENTINDEX = LOCATE(',',str1);
 CURRENTINDEX > 0 の場合
 SET CURRENTSTR = 部分文字列(str1,1,CURRENTINDEX-1);
 FIND_IN_SET(CURRENTSTR,str2)の場合
  結果を 1 に設定します。
 終了の場合;
 SET str1 = サブ文字列(str1,CURRENTINDEX+1);
 SET CURRENTINDEX = LOCATE(',',str1);
 終了しながら;
 #1つだけ渡し、最後にカンマは入れない IF LENGTH(str1) > 0 THEN
 FIND_IN_SET(str1,str2)の場合
  結果を 1 に設定します。
 終了の場合;
 終了の場合;
終了の場合;
結果を返します。
終わり;

2番目のタイプ: 検出するにはすべてを含める必要がある

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1 テキスト、str2 テキスト)
 戻り値テキスト
始める
 # 2 つのコンマ区切りの文字列を渡して、最初の文字列を分割した後の単一の文字がすべて 2 番目の文字列に含まれているかどうかを判断します。DECLARE CURRENTINDEX INT; # 現在の添え字 DECLARE CURRENTSTR text;
結果を int として宣言します。
TOTALCOUNT int を宣言します。
TRUECOUNT int を宣言します。
RESULT = 0 を設定します。
CURRENTINDEX = 0 を設定します。
CURRENTSTR = '' を設定します。
TOTALCOUNT = 0 に設定します。
TRUECOUNT = 0 に設定します。
str1がNULLでなく、str1 != ''の場合
 SET CURRENTINDEX = LOCATE(',',str1);
 CURRENTINDEX > 0 の場合
 合計カウントを合計カウント + 1 に設定します。
 SET CURRENTSTR = 部分文字列(str1,1,CURRENTINDEX-1);
 FIND_IN_SET(CURRENTSTR,str2)の場合
  TRUECOUNT = TRUECOUNT + 1 を設定します。
 終了の場合;
 SET str1 = サブ文字列(str1,CURRENTINDEX+1);
 SET CURRENTINDEX = LOCATE(',',str1);
 終了しながら;
 #1つだけ渡し、最後にカンマは入れない IF LENGTH(str1) > 0 THEN
 合計カウントを合計カウント + 1 に設定します。
 FIND_IN_SET(str1,str2)の場合
  TRUECOUNT = TRUECOUNT + 1 を設定します。
 終了の場合;
 終了の場合;
終了の場合;
TOTALCOUNT > 0 かつ TRUECOUNT = TOTALCOUNT の場合 
 結果 = 1 を設定します。
終了の場合;
結果を返します。
終わり;

要約する

上記は、編集者が紹介したMySqlコンマ連結文字列クエリの2つの方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Mysql 文字列の傍受と指定された文字列内のデータの取得
  • MySQLは文字列関数のSQL文をインターセプトします
  • MySQLは文字列の連結、インターセプション、置換、位置検索操作を実装しています

<<:  Linux seqコマンドの使い方の詳しい説明

>>:  Vueはスライダードラッグ検証機能の全プロセスを実現します

推薦する

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

Linux 面接で最もよく聞かれる 10 の質問のまとめ

序文Linux システムの運用および保守エンジニア職の面接を受ける場合は、次の 10 個の最も一般的...

Vue3 の emitting と attr の違いの分析

目次結論は実践分析拡張機能要約する結論は親コンポーネントでカスタム イベントが定義されている場合、子...

IEの送信フォームの記録履歴クリックリターン情報を実現するためのCSSスタイルコントロールはまだ残っています

これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...

VMware インストール後に仮想ネットワーク カードが表示されない問題について

1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...

フロントエンドの状態管理(パート2)

目次1. 再出発1.1. ストア(司書) 1.2. 状態(書籍) 1.3. アクション(図書貸出リス...

CSSを使用してTDのINPUTの幅を設定する

最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...

CSS でテキストシャドウと要素シャドウ効果を使用する

テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobufの簡単な紹介Protobuf は、Google のオープンソースのシリアル化プロトコ...

MySQLでカーソルトリガーを使用する方法

カーソル選択クエリによって返される行のセットは、結果セットと呼ばれます。結果セット内の行は、入力した...

初心者向けMySQLシリーズチュートリアル

目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...

CSS メニューボタンアニメーション

ドロップダウンメニューを書くには、ボタンをクリックします。メニューの入り口はアイコンボタンをクリック...