假设:
短语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%
。
答案 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以供参考。