escape_string($_GET["keywords"]); -6ren">
gpt4 book ai didi

php - 如何修复此 mysql 查询?

转载 作者:行者123 更新时间:2023-11-29 02:16:27 25 4
gpt4 key购买 nike

我有以下 MYSQL 查询:

if(isset($_GET["keywords"])) {
$keywords = $db->escape_string($_GET["keywords"]);
$query = $db->query("SELECT * FROM data WHERE scriptures LIKE '%{$keywords}%' OR books LIKE '%{$keywords}%'");

?>

<div class='result-count'>
Found <?php echo $query->num_rows; ?> results.
</div>
<?php

if($query->num_rows) {
while($r = $query->fetch_object()) {
?>
<div class='result'>
<?php
$scriptures_link = $r->scriptures_link;
$books_link = $r->books_link;

echo "<a href='$scriptures_link'> Hi </a> <br>";
echo "<a href='$books_link'> Bye </a> <br>";
?>
</div>
<?php
}
}

}

我有两个不同的类别:经文书籍。 LIKE 语句针对这两个组。因此,如果一行信息包含这两项的信息。因此,如果一个项目与 LIKE 语句匹配,而另一个不匹配,则这两个项目都会显示在搜索结果中。如何分离查询,一次只执行一个查询?

最佳答案

您可以尝试使用 Case 语句。

SELECT *,
CASE
WHEN scriptures LIKE '%{$keywords}%' THEN scriptures_link
WHEN books LIKE '%{$keywords}%' THEN books_link
END as the_link
FROM data WHERE scriptures LIKE '%{$keywords}%' OR books LIKE '%{$keywords}%'"

然后回显 $r->the_link

如果可行,请告诉我。 (我没有测试查询,但我认为它是正确的。)

关于php - 如何修复此 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909697/

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