我期望获得1条记录,但目前我通过使用以下查询获得0条记录。如何使其运作?基本上,我正在使用关键字在表中搜索,如果前缀,后缀,关键字的确切值与表值匹配,则应该返回记录。基本上,如果发现与此表值匹配,我将使用此表来禁止虚名
情况1:应该返回一条记录,因为sex
出现在搜索关键字的前缀中
select name from invalid_names_master where
name LIKE '%sexsadf' OR
name LIKE 'sexsadf%' OR
name='sexsadf'
情况2:应返回一条记录,因为搜索关键字的后缀中存在
sex
select name from invalid_names_master where
name LIKE '%ertsex' OR
name LIKE 'ertsex%' OR
name='ertsex'
以上两种情况
预期产量:
`sex` (i.e 1 record found)
表:invalid_name_master
最佳答案
我认为您打算进行反向操作,即,如果输入字符串sexsadf
包含invalid_name_master
中的任何值,请进行标记。
请尝试以下查询:
select name
from invalid_names_master
where
'sexsadf' LIKE CONCAT('%', name) OR
'sexsadf' LIKE CONCAT(name, '%') OR
'sexsadf' LIKE name
关于mysql - sql查询以检查前缀,后缀或完整值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53143298/