我們正在實施一個搜索應用單個單詞的靈活性
,我們已經實現了由下面的SQL查詢
SELECT *
FROM jreviews_content
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]'
效果很好一個確切的詞搜索,現在我們想調整它小 我們希望給用戶在前面或後面單個詞的靈活性,以便如果用戶輸入ryans或ryan或sryan,那麼系統應該給出結果保持上述實現的精確詞搜索。
我們正在實施一個搜索應用單個單詞的靈活性
,我們已經實現了由下面的SQL查詢
SELECT *
FROM jreviews_content
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]'
效果很好一個確切的詞搜索,現在我們想調整它小 我們希望給用戶在前面或後面單個詞的靈活性,以便如果用戶輸入ryans或ryan或sryan,那麼系統應該給出結果保持上述實現的精確詞搜索。
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),'[[:>:]]')
我們不能通過調整到上面查詢中寫入的正則表達式來做到這一點 –
添加了正則表達式查詢 – AdrianBR
是'1234ryan'和'瑞安... erwer'有效字符串,或在單詞前/後面只有1個字符? –
前面或後面只有一個字母 –