我有查询,
e.g。
名称栏目有“Rodrigue Dattatray Desilva”。
我想以这样的方式编写查询,
如果我搜索'gtl'并匹配字符串中的任何位置,则应显示结果。
我知道在php中我可以应用像'%g%t%l%'这样的补丁。
但我想知道MySql方式。
注意:我可以搜索任何内容,我只是举个例子。
修改:
create table Test(id integer, title varchar(100));
insert into Test(id, title) values(1, "Rodrigue Dattatray Desilva");
select * from Test where title like '%g%t%l%';
考虑上述情况。其中“gtl”是字符串我试图在标题中搜索,但搜索字符串可以是任何东西 gtl是字符串,它存在于当前标题中但不是按顺序存在。
答案 0 :(得分:0)
简单的答案是你需要一个额外的通配符:
select * from Test where title like '%g%t%l%';
您发布的查询在“l”之后没有外卡,因此只有在短语以“l”结尾时才匹配。
更复杂的答案是您还可以使用regular expressions,这会为您提供更多搜索功能。
甚至更复杂的答案是这些字符串匹配查询的性能往往很差 - 外卡意味着索引通常无效。如果表格中有大量行,full-text searching要快得多。
答案 1 :(得分:0)
你也可以在Mysql中做同样的事情。
您可以在MySql中使用关键字,如。
% - 百分号表示零个,一个或多个字符
_ - 下划线表示单个字符