Pat*_*rio 7 sql oracle search keyword sql-like
我有一个表列,其中包含如下所示的描述:
id description
--------------------------------------
100 ... post-doctorate ...
200 ... postdoctorate ...
300 ... post doctorate ...
Run Code Online (Sandbox Code Playgroud)
我实现了一种搜索机制,用户可以搜索关键字,不知怎的,我在搜索这些单词时遇到问题.即使我LIKE
在我的WHERE
条款中使用,我似乎也不能包括上面的所有3行.
WHERE description LIKE '%post-doctorate%'
Run Code Online (Sandbox Code Playgroud)
我希望能够使用任何作为我的关键字说明的变体搜索所有3个.
我也看着使用,SOUNDEX
但即使这样也行不通.
请忽略我在这里没有使用参数化查询这一事实.我知道它是什么以及如何使用它,但这是我创建的一个旧项目.
使用的方法like
是:
WHERE description LIKE '%post%doctorate%'
Run Code Online (Sandbox Code Playgroud)
但这比你想要的要普遍得多.所以,使用正则表达式:
WHERE REGEXP_LIKE(description, 'post[- ]?doctorate'
Run Code Online (Sandbox Code Playgroud)
或者,如果您想允许任何字符最多出现一次:
WHERE REGEXP_LIKE(description, 'post(.)?doctorate'
Run Code Online (Sandbox Code Playgroud)