我们正在实施搜索应用程序
我们通过以下sql查询实现了精确的单词搜索
SELECT *
FROM jreviews_content
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]'
哪个效果很好,现在我们想稍微调整一下 我们希望在前面或后面为用户提供单字灵活性,这样如果用户键入ryans或ryan或sryan,那么系统应该给出保持上述实现的精确单词搜索的结果。
答案 0 :(得分:0)
set @word='sryan';
SELECT *
FROM (select 'ryan' as a)a
WHERE a like @word
or a like right(@word,length(@word)-1)
or a like left(@word,length(@word)-1)
- &GT; '瑞恩'
set @word='ryan';
SELECT *
FROM (select 'ryan' as a union all select 'bryan' union all select 'yan' union all select 'yankee')a
WHERE a like @word
or a like right(@word,length(@word)-1)
or a like left(@word,length(@word)-1)
- &GT; 'ryan','yan'
set @word='ryan';
SELECT *
FROM (select 'ryan' as a union all select 'bryan' union all select 'yan' union all select 'yankee')a
where
a REGEXP concat('[[:<:]]',@word,'[[:>:]]')
or
a REGEXP concat('[[:<:]]',left(@word,length(@word)-1),'[[:>:]]')
or
a REGEXP concat('[[:<:]]',right(@word,length(@word)-1),'[[:>:]]')