1

それはおそらく本当に簡単です。だから、私はフィールド「full_name」を持つこのテーブル、ユーザーを持っています

次のようなエントリがあるとします

"John Doe"
"Jane Doe"
"Colby Smith Jr"
"Apple Smith"

これらの条件に適合する正規表現検索が必要です。

query = John => return 'John Doe'
query = Doe => return 'John Doe', 'Jane Doe'
query = Apple => return 'Apple Smith'
query = Smith => return 'Colby Smith Jr', 'Apply Smith'
query = Apple Smith => return 'Apple Smith'
query = Smith Jr => return 'Colby Smith Jr'

基本的に、クエリを検索する正規表現関数が必要です * (* はワイルドカードですか?)

OR (結果文字列のスペースの後の最初の文字)クエリ

それは理にかなっていますか?
基本的に、インスタグラムの検索機能を真似ようとしています。できればチェックしてください。

4

2 に答える 2

1

正規表現自体は必要ありません。要件の翻訳:

... WHERE (full_name LIKE 'Doe%'    -- query + "wildcard" (that is, starts with query)
           OR                       -- or
           full_name LIKE '% Doe%)  -- space + query anywhere

パラメーター化されたクエリを使用している場合 (そうすべきです)、LIKE パターン オペランドの構築はもう少し複雑になります: ... LIKE (? || '%') OR ... LIKE ('% ' || ? || '%').

データベースでは、文字列連結の綴りが少し異なる場合があることに注意してください。(たとえば、MySQL は ANSI 二重パイプではなく関数 CONCAT() を使用します。)

于 2012-07-21T22:39:58.687 に答える
0

「%」演算子を使用して、SQL LIKE コマンドを使用します。何かのようなもの:-

    SELECT * FROM Names WHERE name LIKE "%Doe%";
于 2012-07-21T22:22:23.123 に答える