MySQL 中的选项列表数据排序
Picklist data sorting in MySQL
我有两列 (请检查图像) 我想根据它们创建第三列,说明它们是 'match'
col 1
col 2
Match column
MA;NY
NY
Match
MA;NY
FL
Un-match
KS
AR;KY;LA;MS
Un-Match
KY
AR;KY;LA;MS
Match
但是,这两列都属于 'picklist' 数据类型,我不确定如何在 mysql 中执行此操作。
P.S 两列都有多个条目,分隔符为“;”,因此逻辑在这两种情况下都成立。 col 1 到 col 2 and col 2 到 col 1
我试过使用
SELECT col 2 IN (SELECT col 1 from table 1) FROM table 2
但是,它只对某些记录有效(奇怪)
如果您在 (但不是两者)col1 或 col2 中有一个值列表,那么您可以这样做:
select
col1,
col2,
find_in_set(col1, replace(col2, ';', ',')) or
find_in_set(col2, replace(col1, ';', ','))
from t;
我有两列 (请检查图像) 我想根据它们创建第三列,说明它们是 'match'
col 1 | col 2 | Match column |
---|---|---|
MA;NY | NY | Match |
MA;NY | FL | Un-match |
KS | AR;KY;LA;MS | Un-Match |
KY | AR;KY;LA;MS | Match |
但是,这两列都属于 'picklist' 数据类型,我不确定如何在 mysql 中执行此操作。
P.S 两列都有多个条目,分隔符为“;”,因此逻辑在这两种情况下都成立。 col 1 到 col 2 and col 2 到 col 1
我试过使用
SELECT col 2 IN (SELECT col 1 from table 1) FROM table 2
但是,它只对某些记录有效(奇怪)
如果您在 (但不是两者)col1 或 col2 中有一个值列表,那么您可以这样做:
select
col1,
col2,
find_in_set(col1, replace(col2, ';', ',')) or
find_in_set(col2, replace(col1, ';', ','))
from t;