検索文字列に基づいてテーブルからレコードを検索します。この検索は、ストアド プロシージャの一部です。
必要なものは次のとおりです。 1. テーブル ppl には、name,surname の形式のデータを含む列 name があります。たとえば、レコードは barack,oba bar,obama および barack,obama です。
- 検索文字列に基づいてレコードを選択します。検索文字列は、名前または姓にすることができます。
検索文字列に基づいて正確な検索が必要です。検索文字列が bar かどうかを意味します。barack,obama レコードを返すべきではなく、bar,obama のみを返す必要があります。姓の部分の類似完全一致検索。
検索文字列に姓名があるかどうかはわかりません。したがって、検索文字列は「oba」でもかまいません..そして、「barack,oba」レコードのみを返す必要があります。
これまでに試みた以下のアプローチ。しかし、これらのどれもうまくいきませんでした:
- 'bar,%' のような名前または '%,bar' のような名前の ppl から名前を選択します。これは名前の部分では機能しますが、姓の部分では機能しません。
'oba,%' のような名前または '%,oba' のような名前の ppl から名前を選択します。適切な結果を出していません。
select name from ppl where name = ANY('%,oba',oba,%'); - 機能していません
select name from ppl where regexp_like (name,'^,oba$') OR regexp_like (name,'oba$,^'); - 機能していません
この場合、あなたの考えを共有していただきたいと思います。