0

テーブル (table1) に「Jonh Wood Doe Smith」という名前のレコードがあり、ユーザーが「John Doe」、「Jonn Wood Smith」などの可能な組み合わせを入力した場合でも、それを返したいと考えています。

すべての名前の配列である列 (fullName) を実装し、次のように検索することを考えていました。

SELECT * FROM table1 WHERE ({"Wood","Doe"}) IN ANY (fullName)

これが可能かどうか、および/またはこの種の問題に対する最善のアプローチは何かを知っていますか? 私はpostgresqlを使用するので、独自のメソッド、関数などは問題ありません。他のDBと互換性のあるメソッドである必要はありません。

注: fullName は、{"John", "Wood", "Doe", "Smith"} のような列です。

4

1 に答える 1

1

<@次のような配列演算子を使用する必要があります。

SELECT * FROM users WHERE array['Wood','Doe'] <@ fullname;

フィドル

しかし、あなたが本当にすべきことは、全文検索に興味を持つことです

于 2013-08-03T11:14:20.947 に答える