当我在搜索页面中搜索雪铁龙时,我得到了结果,但是如果我搜索 blackn roll,我不会得到结果,因为它在表中写得像 black'n roll。有些用户可能还想搜索 blackn roll 但没有得到结果。我该如何修复它?还有像 v-hr 这样的行和像“&/() 这样的特殊字符。我希望 mysql 忽略它们。
$sql = "SELECT * FROM arac
INNER JOIN suv_marka ON arac.marka = suv_marka.id
WHERE match(suv_marka.marka) against('citroen')";
最佳答案
如果您已经知道要替换的字符,则可以使用 MySQL 的 REPLACE
函数将其替换为 %
并执行 LIKE
比较,例如:
create table test(value varchar(100));
insert into test values ('black''n roll');
SELECT value
FROM test
WHERE 'blackn roll' LIKE CONCAT('%', REPLACE(value, '''', '%'), '%');
如果需要替换多个字符,您可以将 'blackn roll' 替换为您的输入字符串,并使用嵌套的 REPLACE
函数。
关于mysql - 全文搜索 mysql 中的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698786/