0

私は顧客テーブルを持っています

id  name           class    mark

1   John Deo Matt   Four    75
2   Max Ruin        Three   85
3   Arnold          Three   55
4   Krish Star HN   Four    60
5   John Mike       Four    60
6   Alex John       Four    55

John Matt文字列なしで与えられる可能性のある顧客を検索したいと思いdeoます。これに LIKE 条件を使用する方法は?

SELECT * FROM cust WHERE name LIKE '%John Matt%'

結果は行 1 をフェッチする必要があります。

検索文字列がMatt Deoまたはjohn

正確な名前を見つけようとすると、上記は実装できません。2 つの文字列が指定されている場合でも、LIKE クエリを作成して顧客を取得するにはどうすればよいですか?

4

5 に答える 5

1

なぜこれではないのですか

select * from cust where name Like 'John%Matt' ;
于 2015-10-21T09:10:11.077 に答える
1

照合するパターンが

string1<space>anything<space>string2

あなたは書ける:

like string1||' % '||string2
于 2015-10-21T08:52:51.023 に答える
0
 SELECT *
   FROM custtable
  WHERE upper(NAME) LIKE '%' || upper(:first_word) || '%'
    AND upper(NAME) LIKE '%' || upper(:second_word) || '%'
于 2015-10-21T11:07:43.060 に答える
0

REGEXP_LIKE( ) が必要だと思います:

SQL> with tbl(name) as (
      select 'John Deo Matt' from dual
    )
    select name
    from tbl
    where regexp_like(name, 'matt|deo', 'i');

NAME
-------------
John Deo Matt

SQL>

ここで、正規表現文字列は name に 'matt' または 'deo' が含まれていることを指定し、'i' は大文字と小文字を区別しないことを意味します。名前の順序は関係ありません。

于 2015-10-21T13:24:08.973 に答える