搜索包含特殊字符

时间:2016-09-18 11:11:39

标签: mysql

首先,我已经研究了这个问题并在此处经历了很多建议,但很多人都怀疑他们是否表现良好。

所以对我的问题:

我有一个包含用户名的表,并希望为用户提供按名称搜索其他人的可能性。由于这些名字来自Steam,因此不含某种特殊字符的名称属于少数。

最简单的解决方案是使用LIKE name%,但随着表格大小不断增加,我不认为这是最佳解决方案,即使它可能是唯一的解决方案。

我尝试使用全文搜索,但许多特殊角色粉碎了这个想法。

任何其他解决方案,还是我坚持使用LIKE

当前表格行:120k +

2 个答案:

答案 0 :(得分:0)

我不相信字符串函数更快,但当代我没有任何大型数据库来测试性能。我们试一试:

WHERE substr(name, 1, CHAR_LENGTH('ste')) = 'ste'

答案 1 :(得分:0)

我想建议我之前申请的一个解决方案。

  1. 首先,我清除名称栏中字符串中的所有特殊字符。
  2. 然后我将已清理的字符串存储在另一列(称为cleaning_name)和索引(全文搜索)此列而不是原始列。
  3. 最后,我在步骤1中使用相同的功能清除查询的名称,然后在cleaning_name上执行全文搜索。
  4. 我希望这个解决方案适合你。