gpt4 book ai didi

php - 需要帮助调整选择查询以将 Match/Against 子句更改为 Like 子句

转载 作者:行者123 更新时间:2023-11-28 23:30:12 26 4
gpt4 key购买 nike

我目前正在尝试将 LIKE 子句合并到我的 SQL 选择语句中,并删除关联的 MATCH/AGAINST 子句。

我尝试了它的许多不同变体,感觉我遗漏了一些东西,因为似乎还没有一个起作用。

完整的php页面是

<?php

if(isset($_POST['searchQuery']))
{
require_once('config.inc.php');
$search_query=$_POST['searchQuery'];

$sql = 'SELECT * from tbl_fish where MATCH(fish_name,size_name,cat_name) AGAINST(:search_query)';

$statement = $connection->prepare($sql);
$statement->bindParam(':search_query', $search_query, PDO::PARAM_STR);
$statement->execute();
if($statement->rowCount())
{
$row_all = $statement->fetchall(PDO::FETCH_ASSOC);
header('Content-type: application/json');
echo json_encode($row_all);
}
elseif(!$statement->rowCount())
{
echo "no rows";
}
}
?>

我试过这样的语句

 $sql = 'SELECT * from tbl_fish WHERE (fish_name LIKE '%'searchQuery'%')';

但我还没有想出一个可行的方法。这些结果是从一个 android 应用程序中查询的,所以我想知道我是否遗漏了一些东西,而不仅仅是改变了那个语句。我正在学习这方面的教程,它一切正常,除非我尝试更改查询的参数。

希望得到你们的一些反馈。谢谢。

最佳答案

要构建合适的 like 从句,您可以使用 concat

$sql = "SELECT * from tbl_fish WHERE  fish_name LIKE concat ( '%', :searchQuery, '%')";

要匹配您应该使用的 3 列 OR

$sql = "SELECT * from tbl_fish 
WHERE fish_name LIKE concat ( '%', :searchQuery, '%')
or size_name LIKE concat ( '%', :searchQuery, '%')
or cat_name LIKE concat ( '%', :searchQuery, '%');";

关于php - 需要帮助调整选择查询以将 Match/Against 子句更改为 Like 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37593545/

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