我在条令库中有一个方法来搜索这样的人:
function search($value)
{
$qb = $this->createQueryBuilder('p');
$qb->where($qb->expr()->like(
'LOWER(p.lastName)',
"'%" . mb_strtolower($value) . "%'"));
}
示例:
否 | 姓名 | |
---|---|---|
1 | 路易斯 | 桑切斯|
2 | David | Sá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 |