mysql - 用于检查前缀、后缀或完整值的 sql 查询
问题描述
我期望获得 1 条记录,但目前我通过使用以下查询获得 0 条记录。如何让它发挥作用?基本上,我用关键字在表中搜索,如果前缀、后缀、关键字的确切值与表值匹配,则记录应该返回。基本上,如果发现与此表值匹配,我将使用此表来禁止虚名
case 1:应该返回一条记录,因为sex
它存在于搜索关键字的前缀中
select name from invalid_names_master where
name LIKE '%sexsadf' OR
name LIKE 'sexsadf%' OR
name='sexsadf'
case 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)
解决方案
我认为您打算进行反向操作,即,如果输入字符串sexsadf
包含来自 的任何值,则invalid_name_master
标记它。
请尝试以下查询:
select name
from invalid_names_master
where
'sexsadf' LIKE CONCAT('%', name) OR
'sexsadf' LIKE CONCAT(name, '%') OR
'sexsadf' LIKE name