查询字符串中包含的MySQL SELECT字段值

时间:2018-05-17 09:12:59

标签: mysql sql tsql

假设:

短语1 :我是蜘蛛侠,我有一个土豆

短语2 :我是蜘蛛,我喜欢土豆

表:

column_id | column_str
1         | spiderman
2         | potatoes

我想执行一个SQL查询,其输入是短语,结果应该得到:

对于词组1

column_id | column_str
1         | spiderman

对于短语2

column_id | column_str
2         | potatoes

因此,它应该在表column_str列的输入中找到匹配的子字符串并返回其关联的id。

我还没有错误或试用示例,因为我不知道从哪里开始。

我所知道的是%LIKE%匹配器。但这恰恰相反,类似于%IN_LIKE%

2 个答案:

答案 0 :(得分:1)

您应该考虑一些Tricky SQL,如下所示:

select dsd
from (select 'potato' as dsd) ss
where (select 'I am spiderman and I have a potato') rlike dsd;

示例:

mysql> select dsd from (select 'potato' as dsd) ss where (select 'I am spiderman and I have a potato') rlike dsd;
+--------+
| dsd    |
+--------+
| potato |
+--------+

答案 1 :(得分:1)

您需要的只是INSTR功能:

--sample data creation
create table tbl(id int, str varchar(50));
insert into tbl values (1, 'spiderman');
insert into tbl values (2, 'potatoes');

select * from tbl
where instr('I am spiderman and I have a potato', str) > 0;

select * from tbl
where instr('I am a spider and I like potatoes', str) > 0;

请参阅MySQL INSTR() function以供参考。