【问题标题】:Match some words between two columns匹配两列之间的一些单词
【发布时间】:2014-07-31 09:22:52
【问题描述】:

我需要在两列之间匹配一些单词。我无法在任何地方找到此解决方案,所以我需要帮助。

|==========title=================|======title================|
|...Toscano Brioche..............|...Toscano .... ...........|
|....Toscano Brioche Creme.......|...Brioche Creme Butter....|

输出==>

|==========title=================|======title================|===OUTPUT===|
|...Toscano Brioche..............|...Toscano .... ...........|   1        |
|....Toscano Brioche Creme.......|...Brioche Creme Butter....|   1        |
|....Strawberry CAKE Bakery......|...Brioche Creme Butter....|   0        |

如何比较表中名为'title'的这两列,我需要在两列之间匹配一些单词。例如,在第 1 行中,“Toscano”在两列中都很常见,在第 2 行中,“Brioche Creme”很常见。

【问题讨论】:

  • 您有两列同名。我已经很困惑了。
  • 能否请您添加所需的输出。
  • 你想INNER JOIN这里的文字吗?
  • @AnkitBajpai 输出可以是 1 或 0。在 sql 中可以吗?我只需要在 sql 中做
  • @AmukSaxena 在这种情况下,你所追求的(正如其他人所说)是LIKE dev.mysql.com/doc/refman/5.0/en/…

标签: mysql sql


【解决方案1】:

可能是这样的(SQL FIDDLE here)?

SELECT table1.title title1, table2.title title2
FROM table1, table2
WHERE table1.title LIKE CONCAT('%',table2.title,'%') 
OR table2.title LIKE CONCAT('%',table1.title,'%');

【讨论】:

    【解决方案2】:

    无法完全理解您的问题,我认为您想比较 2 列,如果它们有一些常用词,则显示 1。也许它可以帮助您..

    select title1,title2,title1 like concat("%",replace(title2," ","%"),"%") as matched from table_name
    

    编辑:如果这两列来自不同的表,您可以看到接受的答案。顺便说一句,这是显而易见的。但是,如果您想在任何地方找到所有单词,请不要忘记像我一样使用替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2017-09-21
      • 1970-01-01
      相关资源
      最近更新 更多