2013-10-16 32 views
1

我們正在實施一個搜索應用單個單詞的靈活性

,我們已經實現了由下面的SQL查詢

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

效果很好一個確切的詞搜索,現在我們想調整它小 我們希望給用戶在前面或後面單個詞的靈活性,以便如果用戶輸入ryans或ryan或sryan,那麼系統應該給出結果保持上述實現的精確詞搜索。

+0

是'1234ryan'和'瑞安... erwer'有效字符串,或在單詞前/後面只有1個字符? –

+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) 

- > '瑞恩'

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),'[[:>:]]') 
+0

我們不能通過調整到上面查詢中寫入的正則表達式來做到這一點 –

+0

添加了正則表達式查詢 – AdrianBR