如何在mysql中比较部分字符串与大型数据库

时间:2016-03-08 13:13:55

标签: php mysql sql database

  1. 我有一个mysql表,其中包含一列域名(大约10万行)
  2. 示例:

    ID    Domain_Name
     1    AnotherOlataxi.xom
     2    goodlolita.com
    
    1. 我还有更多的表格包含来自不同语言的单词,如英语单词,法语单词等。
    2. 示例:

      ID    Language   Word 
      1     en         good
      2     en         taxi
      3     fr         ola
      

      我想将每个域与语言表进行比较,找到单词和语言。

      示例: 我应该得到一个单词和语言列表。 如果我运行域名anotherolataxi.com,它应该返回

      Array(
       'another'=>'en',
       'ola'   => 'fr',
       'taxi' =>'en'
      )
      

      如何在不影响性能的情况下获得此结果以及如何比较这些大型表?

1 个答案:

答案 0 :(得分:4)

您可以使用like执行此操作。它效率不高,但它可以做你想做的事情:

select d.*, w.*
from domains d join
     words w
     on d.domain_name like concat('%', w.word, '%');

对于单个域,性能不应太差。您可以添加where子句:

where d.id = 1
例如