LOCATE
またはFIND_IN_SET
関数を使用できます。LOCATEは部分一致を検索します。たとえば、で一致するものが見つかりme
ますme1,me2
。これがあなたが望むものでない場合、多分あなたは探していFIND_IN_SET
ます。
SELECT lg
FROM a, b
WHERE a.id = 22 AND
LOCATE(b.lg, a.gr) > 0;
投稿したデータの複製は、SELECTからの出力です。
mysql> create temporary table a (gr varchar(100));
Query OK, 0 rows affected (0.36 sec)
mysql> create temporary table b (lg varchar(100));
Query OK, 0 rows affected (0.08 sec)
mysql> insert into a values ('m301,you,weall'),('me,you,me2'),('me');
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into b values ('m301'),('you'),('weall'),('me2'),('me'),('me1');
Query OK, 6 rows affected (0.06 sec)
Records: 6 Duplicates: 0 Warnings: 0
mysql> SELECT lg, gr FROM a, b WHERE locate(lg,gr) > 0;
+-------+----------------+
| lg | gr |
+-------+----------------+
| m301 | m301,you,weall |
| you | m301,you,weall |
| you | me,you,me2 |
| weall | m301,you,weall |
| me2 | me,you,me2 |
| me | me,you,me2 |
| me | me |
+-------+----------------+
7 rows in set (0.02 sec)