在一个领域推进搜索。 php& MySQL的

时间:2014-08-05 07:05:27

标签: php mysql search

我有FullName字段,我想对它进行高级搜索。 例如:

记录的名字是:" Mike Jone Terbiani"

如果我使用 LIKE ,那么:

  • 如果INPUT是迈克,它将返回true
  • 如果INPUT是mik,它将返回true
  • 如果INPUT是jone,它将返回true
  • 如果INPUT是mike jone,它将返回true
  • 如果INPUT是jone Terbiani,它将返回true

但是如果INPUT是mike Terbiani,它将返回false

实现这一目标的方法是什么? 要做到以下几点:

  • 如果INPUT是迈克,它将返回true
  • 如果INPUT是Terbiani,它将返回true
  • 如果INPUT是mike Terbiani,它将返回true
  • 如果INPUT是Terbi,它会返回true,因为它是有序的。
  • 如果INPUT是Terbiani mike,它将返回false,因为它是 按顺序。

由于

1 个答案:

答案 0 :(得分:2)

%替换输入中的空格,并将%放在整个事物周围,然后使用LIKE。因此,如果输入为ke Terbiani,请使用:

$like = preg_replace('/\s+|^|$/', '%', $fullname);

$sql = "SELECT ... FROM table WHERE fullName LIKE '$like'"