我正在尝试做的事情:多词搜索,当用户从下拉列表中选择 pub 时,它只需要检索表中 pub 不等于“-”的记录。
出了什么问题:它进行了一些过滤,但最后一条记录是带有“-”的记录
我试过的:
我在 MySQL 控制台中尝试了以下查询。
我的查询:
SELECT * FROM ticker where pub <> '-' AND (summary LIKE '%funny%' OR cust_exp LIKE '%funny%') OR (summary LIKE '%joke%' OR cust_exp LIKE '%joke%') OR (summary LIKE '%impact%' OR cust_exp LIKE '%impact%') ORDER BY `created` DESC
上述查询是通过以下方式生成的:
构建多词搜索..
$words = explode(" ",$keywords);
$queryWords = '';
$i=0;
foreach($words as $each){
$i++;
if ($i == 1){
$queryWords.=" (summary LIKE '%$each%' OR cust_exp LIKE '%$each%') ";
}
else{
$queryWords.=" OR (summary LIKE '%$each%' OR cust_exp LIKE '%$each%') ";
}
}
查询代码片段..
elseif ($ticket_type == 'Pub'){
if ($status == 'All'){
if (empty($product)){
$query="SELECT * FROM ticker where pub <> '-' AND".$queryWords."ORDER BY `$order_by` DESC";
}
编辑:示例搜索字符串是“有趣的笑话影响”