MySQL搜索Paul和Paul JD示例?

MySQL搜索Paul和Paul JD示例?,mysql,Mysql,假设Paul JD和Paul是同一个人,那么在搜索Paul或Paul JD时返回Paul和Paul JD的正确MySQL语句是什么 我的MySQL声明: $sql=mysql_query("SELECT * FROM people WHERE name Like '%$h%' LIMIT 0, 5"); 搜索Paul JD时,此语句不会返回Paul您不应该搜索“Paul JD”-您应该搜索“Paul”,它将同时找到“Paul”和“Paul JD”。请注意,“Paul JD”不是“Paul”的子

假设
Paul JD
Paul
是同一个人,那么在搜索
Paul
Paul JD
时返回
Paul
Paul JD
的正确MySQL语句是什么

我的MySQL声明:

$sql=mysql_query("SELECT * FROM people WHERE name Like '%$h%' LIMIT 0, 5");

搜索
Paul JD
时,此语句不会返回
Paul

您不应该搜索“Paul JD”-您应该搜索“Paul”,它将同时找到“Paul”和“Paul JD”。请注意,“Paul JD”不是“Paul”的子字符串(反之亦然)。

您不应该搜索“Paul JD”-您应该搜索“Paul”,它将同时找到“Paul”和“Paul JD”。请注意,“Paul JD”不是“Paul”的子字符串(反之亦然)。

您必须将传入的
Paul JD
分成两部分(用空格分隔),然后进行搜索

$sql=mysql_query("SELECT * FROM people WHERE name Like '%$FirstWord%' OR name Like '%$SecondWord%' LIMIT 0, 5");
但这很快就会变得很难,因为你会希望与保罗JD保罗进行比赛

$sql=mysql_query("SELECT * FROM people WHERE name Like '%$FirstWord%' OR name Like '%$SecondWord% OR name Like '%$FirstWord%$SecondWord%' LIMIT 0, 5");

随着它变得越来越复杂,您可以创建一个临时表,将传入的字符串放入其中,并使用连接和匹配。

您必须将传入的
PAUL JD
拆分为两个(用空格分隔),然后进行搜索

$sql=mysql_query("SELECT * FROM people WHERE name Like '%$FirstWord%' OR name Like '%$SecondWord%' LIMIT 0, 5");
但这很快就会变得很难,因为你会希望与保罗JD保罗进行比赛

$sql=mysql_query("SELECT * FROM people WHERE name Like '%$FirstWord%' OR name Like '%$SecondWord% OR name Like '%$FirstWord%$SecondWord%' LIMIT 0, 5");

随着它变得越来越复杂,您可以创建一个临时表,将传入的字符串放入其中,并使用联接和匹配。

要启用模糊搜索样式,您需要在空白处拆分搜索参数,并根据其包含的参数数动态构建查询字符串

因此,对于“Paul JD”示例,您的查询字符串应该如下所示:

$sql = mysql_query("SELECT * FROM people WHERE name Like '%$h1%' OR name like'%$h2%' LIMIT 0, 5");
SELECT * FROM people WHERE name Like '%Paul%' OR name like'%JD%' LIMIT 0, 5
当它执行时,它看起来像:

$sql = mysql_query("SELECT * FROM people WHERE name Like '%$h1%' OR name like'%$h2%' LIMIT 0, 5");
SELECT * FROM people WHERE name Like '%Paul%' OR name like'%JD%' LIMIT 0, 5

为了使模糊搜索更加流畅,可以将实现作为函数。并使用它来过滤结果。

要启用模糊搜索风格,您需要在空白处拆分搜索参数,并根据其中包含的参数数量动态构建查询字符串

因此,对于“Paul JD”示例,您的查询字符串应该如下所示:

$sql = mysql_query("SELECT * FROM people WHERE name Like '%$h1%' OR name like'%$h2%' LIMIT 0, 5");
SELECT * FROM people WHERE name Like '%Paul%' OR name like'%JD%' LIMIT 0, 5
当它执行时,它看起来像:

$sql = mysql_query("SELECT * FROM people WHERE name Like '%$h1%' OR name like'%$h2%' LIMIT 0, 5");
SELECT * FROM people WHERE name Like '%Paul%' OR name like'%JD%' LIMIT 0, 5

为了使模糊搜索更加流畅,可以将实现作为函数。然后用它来过滤你的结果。

保尔森也是同一个用户吗?Paut或p呢?保尔森也是同一个用户吗?Paut或p呢?-1这个解决方案将责任推给了用户。e、 g.“医生,当我这样做的时候会很痛。医生回答:不要那样做!”否则程序怎么知道去掉“JD”?你如何知道它是否重要?只有用户知道这一点。它不会剥离任何东西,它会更聪明,并拆分参数。看看我和拉杰的答案。我们俩都有相同的想法。然后你会得到《JD塞林格》的点击率——可能不是预期的。我认为用户必须控制搜索字符串,并意识到“以开始”的真正含义。不是很费劲,伊姆霍。-1这个解决方案把责任推到用户身上。e、 g.“医生,当我这样做的时候会很痛。医生回答:不要那样做!”否则程序怎么知道去掉“JD”?你如何知道它是否重要?只有用户知道这一点。它不会剥离任何东西,它会更聪明,并拆分参数。看看我和拉杰的答案。我们俩都有相同的想法。然后你会得到《JD塞林格》的点击率——可能不是预期的。我认为用户必须控制搜索字符串,并意识到“以开始”的真正含义。不是那么累人,伊莫。