我需要一个 select 语句来匹配包含全名的字段中的部分记录。
如果记录包含 john,它将显示带有 john、johnson、johnsmith 等的记录。john 可以是名称中的任何位置
如果记录包含 john,它将显示带有 john、johnson、johnsmith 等的记录。john 可以是名称中的任何位置
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;