我有这个简单的表和用户记录。
我只想让具有 ilike 或其他东西的用户在 PostgreSQL 10.12 中获得更好的顺序。
CREATE TABLE users(
ID INT PRIMARY KEY NOT NULL,
username CHAR(50) NOT NULL
);
INSERT INTO users (id, username) VALUES(1,'mandela');
INSERT INTO users (id, username) VALUES(2,'delpiero');
INSERT INTO users (id, username) VALUES(3, 'gondela');
INSERT INTO users (id, username) VALUES(4, 'del');
INSERT INTO users (id, username) VALUES(5, 'dell');
INSERT INTO users (id, username) VALUES(6, 'andel');
当我查询“del”时,我想首先获得 id 为 4 的“del”用户。可以按长度排序。但这仍然不是我想要的。顺序应该是这样的。二阶必须是“dell”,三阶必须是“delpiero”,第四阶是“andel”,第五阶是“gondela”,第六阶是“mandela”。
select * from users where username ilike '%del%' order by length(users.username) asc;