gpt4 book ai didi

php - 在 PHP 中合并两个 sql 查询的结果

转载 作者:行者123 更新时间:2023-11-29 23:33:36 24 4
gpt4 key购买 nike

我正在尝试实现一种搜索功能,不仅可以在一个表(任务)中搜索,还可以在另一个相关表(事件)中搜索。事件有一个列名任务,用于标识其所属的任务(即任务表中的列 keyid)。我搜索任务表的方式是:

SELECT
tasks.*
FROM
tasks
WHERE
(
(
tasks.description LIKE '%$search%'
OR tasks. NAME LIKE '$search%'
)
AND tasks. USER = '$userid'
);

我搜索事件表的方式是:

SELECT DISTINCT
tasks.*
FROM
activities,
tasks
WHERE
tasks. USER = '1'
AND activities.description LIKE '%$search%';

各个查询都有效,并且都返回任务表数据。我想要做的是合并两个结果(在 php 中),以便我只获取所有表任务条目而不重复。

我该怎么做?

最佳答案

执行两个查询并使用 array_merge() 的变体合并结果之后(处理可能的重复项),或者简单地连接 WHERE您的两个条款SELECT带有 OR 的语句运算符:

SELECT
DISTINCT tasks.*
FROM
activities,
tasks
WHERE
(
(
tasks.description LIKE '%$search%'
OR tasks.NAME LIKE '$search%'
)
AND tasks.USER = '$userid'
)
OR
(
tasks.USER = '$userid'
AND activities.description LIKE '%$search%'
);

应用一些 bool 优化:

SELECT
DISTINCT tasks.*
FROM
activities,
tasks
WHERE
tasks.USER = '$userid'
AND
(
tasks.description LIKE '%$search%'
OR tasks.NAME LIKE '$search%'
OR activities.description LIKE '%$search%'
);

无论如何,看到你的代码我当然希望你保护自己免受 SQL injection 的侵害通过 carefully sanitizing your data ,或使用 PDOStatement::bindParam 它会为您处理这些事情。

关于php - 在 PHP 中合并两个 sql 查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26464058/

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