カンマ区切りリストに値が存在する場合のデータの取得 (MySQL)
問題:
MySQL テーブルがあり、その列の 1 つに NUMBERS という名前が含まれています。カンマで区切られた数値のリスト。特定の行の NUMBERS 列に特定の数値が存在するかどうかを確認したいとします。たとえば、UID が 2 の行の NUMBERS 列に数値 3 と 15 が存在するかどうかを確認する必要があります。
解決策:
このチェックを実行するには、IN 演算子を使用します。 IN 演算子を使用すると、値のリストを指定し、指定された値がリスト内のいずれかの値と一致するかどうかを確認できます。この場合、IN 演算子を使用して、特定の行の NUMBERS 列に数値 3 と 15 が存在するかどうかを確認できます。
これを行う 1 つの方法は、次のクエリを使用することです。
SELECT * FROM table WHERE 3 IN (NUMBERS) AND 15 IN (NUMBERS);
このクエリは、数値 3 と 15 の両方が NUMBERS 列に存在するテーブルのすべての行を返します。この例では、NUMBERS 列に 3 と 15 の両方が含まれているため、このクエリは UID 2 の行を返します。
別の代替方法は、FIND_IN_SET() 関数を使用することです。 FIND_IN_SET() 関数は、値とカンマ区切りリストの 2 つの引数を受け取ります。値が存在する場合はリスト内の位置を返し、値が存在しない場合は 0 を返します。この関数を使用すると、次のクエリを使用して、特定の数値が NUMBERS 列に存在するかどうかを確認できます。
SELECT * FROM table WHERE FIND_IN_SET(3, NUMBERS) > 0 AND FIND_IN_SET(15, NUMBERS) > 0;
このクエリは前のクエリと同じ結果を返しますが、FIND_IN_SET( ) 関数を使用して、数字 3 と 15 が NUMBERS 列に存在するかどうかを判断します。
これらのメソッドは両方とも、特定の数字が存在するかどうかを確認するために使用できます。 MySQL テーブルのカンマ区切りリスト。好きな方法を使用できます。
以上がMySQL のカンマ区切りリストに特定の数値が存在するかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。