6

検索語から英数字以外の文字を取り除くのは非常に簡単ですが、データベース内の値の英数字以外の文字のみとどのように比較しますか?

たとえば、を検索した場合、との両方にstack's一致させるにはどうすればよいですか?stacksstack's

what-do-i-do上記を実現するには、以下の変数に対して何をする必要がありますか?

SELECT * FROM table WHERE <what-do-i-do> ilike 'stacks'
4

2 に答える 2

4

これを行う1つの方法は、translateを使用することです。

select *
from table
where translate(lower(WhatIDo), translate(lower(WhatIDo), 'abcdefghijklmnopqrstuvwxyz', ''), '') = 'stacks'

内部変換は、すべての非英字を検索します。次に、アウターはこれらをストリングから削除します。

于 2013-01-30T00:34:00.380 に答える
0

英数字以外の文字のすべてのインスタンスをワイルドカード文字('%')に置き換えてみることができます。あなたの例では:

SELECT * FROM table WHERE data like 'stack%s'
于 2013-01-30T00:33:44.527 に答える