如何在SQL中对指定字符后的内容执行精准LIKE匹配?
SQL实现冒号后精准匹配“ A”子串的方案
核心思路
需要定位字符串中冒号:后的内容,检查其中是否存在独立的“ A”子串(A前带空格),同时避免使用A%这类开头模糊匹配的写法。以下是两种可行实现方式:
方法1:截取冒号后内容再匹配
先通过CHARINDEX找到冒号的位置,截取冒号之后的部分,再用LIKE判断该部分是否包含目标子串:
SELECT your_column FROM your_table WHERE SUBSTRING(your_column, CHARINDEX(':', your_column) + 1, LEN(your_column)) LIKE '% A%'
方法2:直接匹配整串模式
无需截取字符串,直接通过LIKE匹配包含“冒号+空格+任意内容+ A+任意内容”的完整字符串:
SELECT your_column FROM your_table WHERE your_column LIKE '%: % A%'
匹配验证
针对你的示例数据:
" Arthur is wanted : A test":冒号后包含“ A”,匹配成功" Arthur is wanted : B":无目标子串,匹配失败" Arthur is wanted : BE COOL A":结尾存在“ A”,匹配成功" Arthur is wanted : ANSWER B":仅含单词内的A,无独立“ A”子串,匹配失败
完全符合你要求的筛选结果,且未使用A%类开头模糊匹配。
内容的提问来源于stack exchange,提问作者ArthurArmand
相关产品推荐
相关产品推荐

