如何在多个表中搜索数据?
Posted
技术标签:
【中文标题】如何在多个表中搜索数据?【英文标题】:How to search for data in many tables? 【发布时间】:2021-07-23 01:50:32 【问题描述】:如何从我的数据库中搜索所有表中的数据?我需要在 Github 上创建某种搜索,在将短语输入搜索引擎后,它会查找我们的存储库、问题和用户,我需要执行类似的操作,但要搜索以下实体:User
, Order
和 Projects
,
我正在使用TypeORM
,简单的搜索查询如下所示:
const data = await this.conn
.getRepository(Order)
.createQueryBuilder('order')
.where('order.name = :name ', name : name )
.leftJoin('order.author', 'author')
.orderBy('order.lastUpdate', 'DESC');
但是如何不仅在Order
实体中搜索,而且在User
和Projects
等其他表中搜索?最大的公司搜索引擎是如何工作的?
【问题讨论】:
【参考方案1】:像谷歌这样的大公司现在将他们的技术建立在人工智能之上,将它们作为一个系统来组织大数据 (see more on that here)。但是,google 最初使用的 Page Rank 算法会为从其他网站 (see here) 推荐率较高的网站分配更高的值。
听起来你会得到最大的收获是 LIKE
关键字 (see the basics) 与 UNION
关键字 (info here) 的组合。
在 SQL(我不知道 TypeORM)中,你可能会得到一些好的结果:
SELECT * FROM table1 WHERE name LIKE '%searchterm%'
UNION
SELECT * FROM table2 WHERE name LIKE '%searchterm%';
【讨论】:
以上是关于如何在多个表中搜索数据?的主要内容,如果未能解决你的问题,请参考以下文章
iOS如何在少数Data表中搜索数据Parse swift 4
如何快速搜索出excel工作表中哪些单元格链接到其他数据源?