gpt4 book ai didi

php - MYSQL union PHP 选择一个结果列

转载 作者:行者123 更新时间:2023-11-29 12:57:46 30 4
gpt4 key购买 nike

好吧,到了某个时候,当你用 Google 搜索斗鸡眼时,盯着 SQL 就是唯一的选择。我不太明白这个问题。我想做的只是使用 1 个查询一次搜索多个表并返回找到的内容。我想我需要对此进行单独的查询,但想看看是否有更好的方法。

例如,有一个类别表和一个用户表。如果用户搜索“jo”,它可能会在类别表中找到“jobs”,但也应该在用户表中找到“joe”。这些显示在 <ul><li> 中具有固定长度的 html 样式。有没有一种方法可以通过一个查询来实现?理想情况下,如果在类别表中找到“jobs”,则该记录将结束,下一条记录将包含用户表中的“joe”(前提是“jo”没有类别表中的多个类别。

我玩过UNION SELECT ,但不确定它是否可以以这种方式执行。我也许能够从查询中获取结果,但由于表有超过 1 个正在搜索的字段名称,我需要能够根据结果的来源返回结果。

例如,类似:

SELECT cat_name as result FROM categories WHERE cat_name LIKE '%$name%' 
UNION (SELECT firstname as result, lastname as result, username as result WHERE
firstname LIKE '%$name%' OR lastname LIKE '%$name%' OR username LIKE '%$name%' LIMIT 10

<?php echo $row['result']; ?>

您认为它需要多个查询吗?

最佳答案

我认为使用多个查询并使用 echo 单独显示结果以免混淆(这样您就知道结果来自哪里)有任何害处。

这样的东西不会给你的脚本带来任何负担,并且使它更容易阅读。

<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT cat_name FROM categories WHERE cat_name LIKE '%$name%';";
$result = mysqli_query($con,$sql);

echo "<h1>Category Matches</h1>"
echo "<ul>";
while($row = mysqli_fetch_array($result)) {
echo "<li>" . $row['cat_name'] . "</li>";
}
echo "</ul>";

$sql2 = "SELECT * FROM users WHERE first_name LIKE '%$name%';";
$result2 = mysqli_query($con,$sql);

echo "<h1>User Matches</h1>"
echo "<ul>";
while($row = mysqli_fetch_array($result2)) {
echo "<li>" . $row['first_name'] . "</li>";
}
echo "</ul>";

mysqli_close($con);
?>

关于php - MYSQL union PHP 选择一个结果列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772804/

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