基本上与other thread相同的问题!
我有一个db表,我需要编写一个查询,它将根据字符串的部分匹配返回结果。
Example:
DB field: abc
Search term: 123abc
i.e. I want given 123abc for it to return the row that has the abc field in it!
My attempt:
SELECT mood from users where '$searchTerm' like '%' || dbField
这样的事情有可能吗?
基本上我正在尝试将这些数字与搜索字词la77740985
id | mood | numberfield
==== ===== ============
1 bad '77740985'
2 good '77513755'
运行查询会返回两行!
注意:通配符应该只在字符串的开头,换句话说我希望搜索词以任何东西开头,但仍然匹配数据库中基本上具有相同结尾的字符串。
答案 0 :(得分:2)
它的工作原理如下:
从用户处选择心情,其中'$ searchTerm'就像concat('%',numberField);
答案 1 :(得分:0)
SELECT mood
from users
where '$searchTerm' like '%' || numberField
这将匹配$ searchTerm ='123abc'与包含'abc'的dbField。这是正确的。如果您需要包含(任何地方),请在最后添加|| '%'
。
完整的测试脚本
drop table if exists users2;
create table users2 (mood, numberfield);
insert into users2(mood,numberfield) values ('happy','77740985');
insert into users2(mood,numberfield) values ('sad','77513755');
然后运行
SELECT mood from users2 where 'la77740985' like ('%' || numberfield);
输出
mood
=======
'happy'