gpt4 book ai didi

php - 如何实现跨两个表的搜索查询?

转载 作者:行者123 更新时间:2023-11-29 23:44:59 28 4
gpt4 key购买 nike

我正在为我的网页实现一个非常简单的搜索功能。有一个表名称任务,有 4 个感兴趣的列:名称、描述、状态(最后一列是具有三个可能选择的多项选择)和用户名。

所以我像这样进行搜索:

SELECT * FROM tasks WHERE ((description LIKE '%search_val%' OR name LIKE '%search_val%') AND status='selected_status')

对于所有意图和目的来说,这都是有效的。然而现在我意识到我希望用户输入的搜索模式(上面的句子在 PHP 代码中执行)也能够在不同表的列名称和姓氏中搜索:表用户。如果用户名(两个表共有的字段)有任务,那么也是查询的结果。

也就是说,用户在搜索框中输入 John。我想显示用户名以 John 作为姓氏或名字的用户的任何任务,并显示描述或任务名称中包含 John 的任何任务。

我该如何编写查询?

最佳答案

使用JOIN连接userstasks表,并使用UNION组合两个查询

SELECT *
FROM tasks
WHERE description LIKE '%search_val%' OR name LIKE '%search_val%'

UNION

SELECT t.*
FROM tasks AS t
JOIN users AS u ON t.username = u.username
WHERE u.name LIKE '%search_val%' OR u.lastname LIKE '%search_val%'

关于php - 如何实现跨两个表的搜索查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25993081/

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