検索語から英数字以外の文字を取り除くのは非常に簡単ですが、データベース内の値の英数字以外の文字のみとどのように比較しますか?
たとえば、を検索した場合、との両方に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'
これを行う1つの方法は、translateを使用することです。
select *
from table
where translate(lower(WhatIDo), translate(lower(WhatIDo), 'abcdefghijklmnopqrstuvwxyz', ''), '') = 'stacks'
内部変換は、すべての非英字を検索します。次に、アウターはこれらをストリングから削除します。
英数字以外の文字のすべてのインスタンスをワイルドカード文字('%')に置き換えてみることができます。あなたの例では:
SELECT * FROM table WHERE data like 'stack%s'