MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

文字列を分割し、MySQLプロシージャの値をループしますか?


文字列を分割してMySQLプロシージャのすべての値をループするために、REPLACE()関数を使用する必要はありません。理解するには、最初にストアドプロシージャを作成し、次にテーブルを作成して、いくつかの値を使用してストアドプロシージャを呼び出します。値がテーブルに挿入されます。

ストアドプロシージャを作成するためのクエリは次のとおりです。

mysql> DELIMITER //
mysql> CREATE PROCEDURE SP_SplitString(Value longtext)
   -> BEGIN
   -> DECLARE front TEXT DEFAULT NULL;
   -> DECLARE frontlen INT DEFAULT NULL;
   -> DECLARE TempValue TEXT DEFAULT NULL;
   -> iterator:
   -> LOOP  
   -> IF LENGTH(TRIM(Value)) = 0 OR Value IS NULL THEN
   -> LEAVE iterator;
   -> END IF;
   -> SET front = SUBSTRING_INDEX(Value,',',1);
   -> SET frontlen = LENGTH(front);
   -> SET TempValue = TRIM(front);
   -> INSERT INTO store (allValues) VALUES (TempValue);
   -> SET Value = INSERT(Value,1,frontlen + 1,'');
   -> END LOOP;
   -> END //
Query OK, 0 rows affected (0.22 sec)
mysql> DELIMITER ;

次に、ストアドプロシージャの値を格納するテーブルを作成します。テーブルを作成するためのクエリ。

mysql> CREATE TABLE store(
   -> Id int NOT NULL AUTO_INCREMENT,
   -> allValues varchar(30),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.63 sec)

テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from store;
Empty set (0.00 sec)

最初は、テーブルにレコードがありません。 CALLコマンドを使用してストアドプロシージャを呼び出しましょう。クエリは次のとおりです。

mysql> call SP_SplitString('Hi,Hello,Good Morning,Bye');
Query OK, 1 row affected (1.02 sec)

上記のストアドプロシージャを呼び出した後、テーブルレコードをもう一度確認しましょう。テーブルのすべてのレコードを表示するクエリは次のとおりです。

mysql> select *from store;

出力は次のとおりです。

+----+--------------+
| Id | allValues    |
+----+--------------+
|  1 | Hi           |
|  2 | Hello        |
|  3 | Good Morning |
|  4 | Bye          |
+----+--------------+
4 rows in set (0.00 sec)

  1. MySQLリスト文字列の値を選択しますか?

    これには、FIND_IN_SET()を使用します。 テーブルを作成しましょう- 例 mysql> create table demo81    -> (    -> id int not null auto_increment primary key,    -> username varchar(200)    -> ); Query OK, 0 rows affected (1.44 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql>

  2. 文字列を分割して結合するC#プログラム

    C#で文字列を分割して結合するには、split()メソッドとjoin()メソッドを使用します。以下が私たちの文字列であるとしましょう- string str = "This is our Demo String"; 文字列を分割するには、split()メソッド-を使用します var arr = str.Split(' '); ここで結合するには、join()メソッドを使用して、文字列の残りの部分を結合します。ここでは、skip()メソッドを使用して文字列の一部をスキップしました- string rest = string.Join(" "