【问题标题】:search in mysql fields在 mysql 字段中搜索
【发布时间】:2012-05-31 08:02:17
【问题描述】:

我需要一个选择语句来匹配包含全名的字段中的部分记录。

如果记录包含 john,它将显示带有 john、johnson、johnsmith 等的记录。john 可以是名称中的任何位置

【问题讨论】:

    标签: mysql search full-text-search field where-clause


    【解决方案1】:
    select  
      name_field  
    from  
      my_table  
    where  
      name_field like '%john%'
    

    更新: 对于问题

    您的意思是问“如何查找,如果 row1 的 name_field 值与从其他 row2 到 rowN 的相同字段值完全或部分匹配?”

    你回答“这正是我需要的”。

    以下解决方案可能对您有所帮助:

    select  
     t.name_field_id, t.name_field as 'name_value',  
     d.name_field_id as 'id_of_dup', d.name_field as 'dup_in'  
    from  
     my_table t,  
     my_table d  
    where  
     d.name_field != t.name_field  
     and d.name_field like concat( '%', t.name_field, '%'  )  
    order by name_value, dup_in;
    

    【讨论】:

    • 我需要匹配存储的记录以找到可能的重复而不是特定文本
    • @AhmedHosny 重复记录或列值?
    • 存储值可能重复,应该选择记录 john david 和记录 peter johnsmith
    • @AhmedHosny - 此解决方案选择所有此类重复记录。尝试一次您的数据并检查您的要求是否未得到满足。如果未满足,请使用所需结果示例编辑您的帖子。
    • 不,它选择像“特定文本”我需要针对存储的值进行选择
    猜你喜欢
    • 1970-01-01
    • 2011-03-21
    • 2012-12-15
    • 2021-10-15
    • 2015-06-17
    • 1970-01-01
    • 2015-11-07
    • 2016-03-04
    相关资源
    最近更新 更多