我期望获得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
mysql - sql查询以检查前缀,后缀或完整值-LMLPHP

最佳答案

我认为您打算进行反向操作,即,如果输入字符串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/

10-15 06:11