gpt4 book ai didi

MySQL 搜索多个表并在一张表中搜索多个列

转载 作者:行者123 更新时间:2023-11-29 15:54:13 25 4
gpt4 key购买 nike

我构建了一个查询来跨多个表搜索一个值。它按原样工作得很好,但我想搜索“customers”表中的多个字段(另外还有“last_name”和“company_name”)。

$sql = "SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%'
UNION
SELECT name as name FROM events WHERE name LIKE '%" . $keyword . "%'
UNION
SELECT product_name as name FROM products WHERE product_name LIKE '%" . $keyword . "%'";

我是否只是像这样为每个附加字段添加更多单独的行?

"SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%'
UNION
SELECT last_name as name FROM customers WHERE last_name LIKE '%" . $keyword . "%'
UNION
SELECT company_name as name FROM customers WHERE company_name LIKE '%" . $keyword . "%'

这似乎不是最有效的,所以想检查一下。谢谢!

最佳答案

有一个有效的解决方案。由于您只收集名称,因此您将它们收集到三个不同的变量中。并使用后端语言,合并这 3 个数组。

    example for php, 
$sql1 = "SELECT first_name as name FROM customers WHERE first_name LIKE '%" . $keyword . "%';
//getting first array result by this query
$sql2 = "SELECT name as name FROM events WHERE name LIKE '%" . $keyword . "%'";
//getting second array result by this query
$sql3 = "SELECT product_name as name FROM products WHERE product_name LIKE '%" . $keyword . "%'";
//getting third array result by this query

$result = array_merge($sql1, $sql2, $sql3)

如果您可以通过后端语言管理数据,则此解决方案将适用。

关于MySQL 搜索多个表并在一张表中搜索多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56587136/

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