0

その人がユーザー名->johnny123を検索し、そのようなユーザー名がない場合、johnny12345、johnnyboyなどのように入力されたユーザー名のパターンに一致するユーザー名のリストを返すとしたら、クエリはどうなりますか。

4

3 に答える 3

2

これはうまくいきます:

SELECT * FROM tablename WHERE username like 'johnny%';

これにより、「johnny」で始まるすべてのユーザー名が検索されます。

于 2012-12-21T06:15:35.790 に答える
1

これにより、johnny123 の 1 つの一致が返されます。それ以外の場合、johnny123 が見つからない場合は、「johnny」で始まるすべてが返されます。エレガントではありませんが、あなたが説明したことを行います。

以下の関数を使用すると、select * from username.test('username');

create function username.test(text)
  returns setof text as $$
  declare
    usr text;
  begin
    usr := (select username from tablename where v like $1);
  if (usr is not null)
    then
       return next usr;     
  else
    return query (select username from tablename where v like '' || $1 || '%'); 
  end if;
  return;
  end;
  $$ language 'plpgsql';
于 2012-12-21T06:52:15.950 に答える
1

これを試してください:

select * from table_name
where username like '%johnny%';

これにより、ユーザー名に johnny が含まれるすべての行が返されます。たとえば、テーブルに次の 3 つのユーザー名が含まれているとします。

johnny123
123johnny
123johnny456

ユーザー名に johnny が含まれているため、すべての行が返されます。

于 2012-12-21T10:55:12.567 に答える