最近在Oracle数据库做模糊查询,某个字段有多个值需要模糊查询,最先想到的就是LIKE关键字,后面觉得复制粘贴每个字段名太麻烦,就想到正则表达式。
用法:
SELECT * FROM 表名 WHERE 字段名
LIKE ‘%匹配字符串1%’ OR 字段名 LIKE ‘%匹配字符串2%’;//两边模糊匹配
SELECT * FROM 表名 WHERE 字段名
LIKE ‘匹配字符串1%’ OR 字段名 LIKE ‘匹配字符串2%’ ;//右模糊匹配(开头)
SELECT * FROM 表名 WHERE 字段名
LIKE ‘%匹配字符串1’ OR 字段名 LIKE ‘%匹配字符串2’;//左模糊匹配(结尾)
用法:
SELECT * FROM 表名 WHERE
REGEXP_LIKE(字段名, ‘(匹配串1|匹配串2|…)’) ;//全模糊匹配
SELECT * FROM 表名 WHERE
REGEXP_LIKE(字段名, ‘^(匹配串1|匹配串2|…)’) ;//右模糊匹配(开头)
SELECT * FROM 表名 WHERE
REGEXP_LIKE(字段名, ‘(匹配串1|匹配串2|…)$’) ;//左模糊匹配 (结尾)