如果假设该人搜索用户名 - > johnny123 并且如果没有这样的用户名,那么我希望它返回一个与输入的用户名模式匹配的用户名列表,例如 johnny12345 、 johnnyboy 等。
问问题
1049 次
3 回答
2
这将起作用:
SELECT * FROM tablename WHERE username like 'johnny%';
这将搜索所有以“johnny”开头的用户名。
于 2012-12-21T06:15:35.790 回答
1
这将为 johnny123 返回一个匹配项。否则,如果没有找到 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 的所有行。例如,如果您的表包含以下三个用户名:
johnny123
123johnny
123johnny456
所有行都将返回,因为它们的用户名中包含 johnny。
于 2012-12-21T10:55:12.567 回答