1

我们正在实现一个搜索应用程序

我们通过以下 sql 查询实现了精确的单词搜索

SELECT *
FROM jreviews_content
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]'

现在效果很好,我们想稍微调整一下词搜索。

4

1 回答 1

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)

->'瑞安'

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)

-> '瑞恩','颜'

    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),'[[:>:]]')
于 2013-10-16T12:06:33.893 回答