MST

星途 面试题库

面试题:MySQL正则表达式在复杂查询中的应用

在MySQL的数据库中有一张'products'表,包含'product_name'字段。要求使用正则表达式,查询出产品名称中含有两个连续相同字母(如'book'中的'oo'),并且产品名称长度大于8的记录,写出完整的SQL查询语句,并解释你的实现思路。
49.2万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
SELECT product_name
FROM products
WHERE product_name REGEXP '(.)\\1'
  AND LENGTH(product_name) > 8;

实现思路

  1. REGEXP '(.)\\1':这部分正则表达式用于匹配两个连续相同的字母。(.)表示捕获任意单个字符,\\1表示引用第一个捕获组,即匹配与第一个捕获组相同的字符,所以合起来就是匹配两个连续相同的字符。
  2. LENGTH(product_name) > 8:这部分用于筛选出产品名称长度大于8的记录。通过WHERE子句将这两个条件结合起来,就能查询出满足题目要求的记录。