mysql - 从一个表中选择包含另一个表中一长串单词中的任何单词的行

标签 mysql sql sorting match

我有一张包含每个财富 1000 强公司名称的表格:

财富榜:

------------------------------------------------
|fid        |  coname                          |
------------------------------------------------
| 1         | 3m                               |
| 2         | Amazon                           |
| 3         | Bank of America                  |
| 999       | Xerox                            |
------------------------------------------------

在我的时事通讯中,我有一个包含每个用户的第二张表:
我的用户:

------------------------------------------------
|uid    |  name      | companyname             |
------------------------------------------------
| 1350  | John Smith |  my own Co              |
| 2731  | Greg Jones |  Amazon.com, Inc        |
| 3899  | Mike Mars  |  Bank of America, Inc   |
| 6493  | Alex Smith |  Handyman America       |
------------------------------------------------

如何吸引为财富 1000 强公司工作的每一位时事通讯订阅者? (通过扫描我的整个 MyUsers 表,查找具有 FortuneList 表中任何 conname 的每条记录)

我希望输出拉动:

------------------------------------------------
|uid   |  name       | companyname             |
------------------------------------------------
| 2731  | Greg Jones |  Amazon.com, Inc        |
| 3899  | Mike Mars  |  Bank of America, Inc   |
------------------------------------------------

(看看它是如何在“Amazon.com, Inc”中间找到“Amazon”的)

最佳答案

尝试使用它,它使用 INNER JOINLIKE 运算符和 CONCAT:

SELECT *
FROM MyUsers
INNER JOIN FortuneList
    ON FortuneList.coname LIKE CONCAT('%', MyUsers.companyname, '%)

(这不会使用您的全文索引,我正在尝试了解如何在 JOIN 中使用 MATCH...AGAINST。)

关于mysql - 从一个表中选择包含另一个表中一长串单词中的任何单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652794/

相关文章:

java - 使用 JOOQ 插入忽略多个 pojo

mysql - 如何在mysql查询中应用GROUP_CONCAT

powershell - 使用一个字段降序然后在第二个字段上升序对数据进行排序?

mysql - 带条件的多个表的SQL查询

MySql SELECT 通过拆分由 || 分隔的多个值

mysql - sql中的固定数字数据类型

sql - 数据立方体设计 : hard-to-aggregate measure

sql - 由于 ORDER BY 未使用索引导致 SQL 查询缓慢

java - 将 RandomInt 与 Integer 数组一起使用的空指针

c++ - 计数排序困惑。不排序数组 (c++)