使用重音符号Doctrine+Symfony+PostgreSQL进行查询



我在条令库中有一个方法来搜索这样的人:

function search($value)
{
$qb = $this->createQueryBuilder('p');
$qb->where($qb->expr()->like(
'LOWER(p.lastName)',
"'%" . mb_strtolower($value) . "%'"));
}

示例:

桑切斯
姓名
1路易斯
2DavidSánchez

该函数可以解决您未使用的问题。

这里的示例代码:

CREATE TABLE p (
last_name varchar(40) NOT NULL    
);
INSERT INTO p VALUES ('Sanchez');
INSERT INTO p VALUES ('Sánchez');
SELECT p.last_name FROM p WHERE unaccent(p.last_name) LIKE CONCAT('%', unaccent('Sánchez'), '%');
SELECT p.last_name FROM p WHERE unaccent(p.last_name) LIKE CONCAT('%', unaccent('Sanchez'), '%');

结果:

last_name
Sanchez
Sánchez

最新更新