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

MySQL SET列を整数オフセットのリストとしてフェッチするにはどうすればよいですか?


MAKE_SET()関数を使用して、MySQLSET列の値を整数オフセットのリストとしてフェッチできます。わかりやすくするために、次のように「set_testing」という名前のテーブルを作成しています-

mysql> Create table set_testing( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, table SET('ABC','ABD','GHF') NOT NULL);
Query OK, 0 rows affected (0.08 sec)

mysql> Insert into set_testing (table) values('1');
Query OK, 1 row affected (0.06 sec)

mysql> Insert into set_testing (table) values('2');
Query OK, 1 row affected (0.06 sec)

mysql> Insert into set_testing (table) values('3');
Query OK, 1 row affected (0.02 sec)

mysql> Insert into set_testing (table) values('4');
Query OK, 1 row affected (0.02 sec)

mysql> Select * from set_testing;
+----+---------+
| id | table   |
+----+---------+
| 1  | ABC     |
| 2  | ABD     |
| 3  | ABC,ABD |
| 4  | GHF     |
+----+---------+
4 rows in set (0.00 sec)

これで、次のクエリはMySQLSET列を整数オフセットのリストとしてフェッチします-

mysql> Select MAKE_SET(types+0,'1','2','3') as output from doctypes1;
+--------+
| output |
+--------+
| 1      |
| 2      |
| 1,2    |
| 3      |
+--------+
4 rows in set (0.00 sec)

  1. MySQLで列を分割する方法は?

    列を分割するには、MySQLでSUBSTRING_INDEX()を使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Name varchar(40)    -> ); Query OK, 0 rows affected (1.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('John_Smith&

  2. MySQLでSET演算子によって初期化されたすべての変数を一覧表示するにはどうすればよいですか?

    SET演算子によって初期化されたすべての変数を一覧表示するには、構文は次のとおりです- select * from performance_schema.user_variables_by_thread; 変数を設定するためのクエリは次のとおりです- mysql> set @FirstName='John'; Query OK, 0 rows affected (0.00 sec) mysql> set @LastName='Doe'; Query OK, 0 rows affected (0.00 sec) これは、SET演算子によって初期化さ