gpt4 book ai didi

php - 使用多个关键字进行搜索

转载 作者:行者123 更新时间:2023-11-29 19:28:24 24 4
gpt4 key购买 nike

如果那是我的数据库

+---------------------------------+
|ID|Name|Department|EMail|Location|
+---------------------------------+
|3 |Sivi|Kitchen |si@gm|Home |
|4 |Mini|Office |mi@gm|Garden |
|5 |Alba|Office |al@gm|Hom |
+---------------------------------+

我还有一个搜索字段,您当前可以使用 1 个关键字在整个数据库中进行搜索。例如,我输入 Sivi 我得到输出

|3 |Sivi|厨房 |si@gm|首页 |

如果我仅搜索 Off 我会得到行:

|4 |Mini|Office    |mi@gm|Garden  |
|5 |Alba|Office |al@gm|Hom |

当前 SQL 语句:

$sql = "SELECT * FROM form WHERE CONCAT(ID, 姓名, 部门, 电子邮件, 位置) LIKE '%".$search."%'";

但是,我希望能够为每个空格指示一个新的“关键字”,该“关键字”再次搜索整个数据库。例如,我搜索 'Siv Home' 我想获得输出

|3 |Sivi|厨房 |si@gm|首页 |

如果我搜索'Mi Offi',我会得到以下行:

|4 |Mini|Office    |mi@gm|Garden  |

因为如果我当前搜索'Mi Offi',我不会得到任何输出。

您可能必须按每个空格分割从文本字段获得的字符串,然后通过数据库搜索每个分割的字符串,但是我不知道最有效的方法是什么。

最佳答案

首先获取字符串并分解它。按要求制定条件。

    $inputdata='Mi Offi';
$search=explode(' ',$inputdata);
$cond=' 1=1 ';
foreach($search as $i=>$data){
if($i==0){
$cond .=" and (CONCAT(ID, Name, Department, Email, Location) LIKE '%".$data."%')` ";
}else {
$cond .=" OR (CONCAT(ID, Name, Department, Email, Location) LIKE '%".$data."%')` ";
}
}
$sql = "SELECT * FROM form WHERE".$cond ;

关于php - 使用多个关键字进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41979960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com