如何查询表字段中按顺序包含字母r后接s的内容,解决LIKE查询顺序不符问题
SQL查询按顺序包含r后接s的字段值的解决方法
你原来写的LIKE '%R%S%'本身的逻辑就是匹配「先出现R、后出现S」的字符串,结果不符合预期通常是大小写匹配规则和需求不匹配导致的,可按实际需求选择写法:
不区分大小写,匹配任意大小写的r在前、s在后(兼容所有主流SQL数据库)
统一将字段转为小写后匹配小写规则即可:SELECT TITULO,PRECIO_ORI, EDICION FROM LIBRO WHERE LOWER(TITULO) LIKE '%r%s%'严格区分大小写,仅匹配小写r在前、小写s在后
可根据所用数据库调整规则,示例:-- PostgreSQL 区分大小写正则匹配 SELECT TITULO,PRECIO_ORI, EDICION FROM LIBRO WHERE TITULO ~ 'r.*s' -- MySQL 区分大小写匹配 SELECT TITULO,PRECIO_ORI, EDICION FROM LIBRO WHERE TITULO LIKE BINARY '%r%s%'若要求r和s紧邻出现,把通配符规则调整为
%rs%即可,比如不区分大小写的写法为LOWER(TITULO) LIKE '%rs%'
内容的提问来源于stack exchange,提问作者Cristian
相关产品推荐
相关产品推荐

