Логика
- использование
custom split_str
функция get столбец1 [0] и столбец1 [1] .. like .. or ..
использование REGEXP + |
Схема (MySQL v5.6)
CREATE TABLE T
(`Column1` varchar(19), `Column2` varchar(12))
;
INSERT INTO T
(`Column1`, `Column2`)
VALUES
('Walmart Supercenter', 'Walmart Sams'),
('Home', 'Home Depot'),
('3M Logistics Co.', '3M')
;
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
Запрос
select *
from T
where `Column2` REGEXP
case when SPLIT_STR(`Column1`, ' ', 2) = '' then
SPLIT_STR(`Column1`, ' ', 1)
else
concat(
SPLIT_STR(`Column1`, ' ', 1)
,'|'
,SPLIT_STR(`Column1`, ' ', 2)
)
end;
| Column1 | Column2 |
| ------------------- | ------------ |
| Walmart Supercenter | Walmart Sams |
| Home | Home Depot |
| 3M Logistics Co. | 3M |
Хотя этот способ может быть достигнут, но эффективность не очень хорошая