从搜索词中去除非字母数字字符非常简单,但是您如何将其与数据库中值的非字母数字字符进行比较?
例如,如果我搜索stack's
,我怎样才能让它同时匹配stacks
和stack's
?
我需要对what-do-i-do
下面的变量做什么才能使上述情况发生?
SELECT * FROM table WHERE <what-do-i-do> ilike 'stacks'
从搜索词中去除非字母数字字符非常简单,但是您如何将其与数据库中值的非字母数字字符进行比较?
例如,如果我搜索stack's
,我怎样才能让它同时匹配stacks
和stack's
?
我需要对what-do-i-do
下面的变量做什么才能使上述情况发生?
SELECT * FROM table WHERE <what-do-i-do> ilike 'stacks'
一种方法是使用翻译:
select *
from table
where translate(lower(WhatIDo), translate(lower(WhatIDo), 'abcdefghijklmnopqrstuvwxyz', ''), '') = 'stacks'
内部翻译查找所有非字母字符。然后外部将这些从字符串中删除。
您可以尝试用通配符 ('%') 替换所有非字母数字字符实例。在您的示例中:
SELECT * FROM table WHERE data like 'stack%s'