首页 > 解决方案 > 为什么我在 sql 中使用正则表达式得到空结果?

问题描述

有一个列命名为产品表的关键字

+---------+
| keyword |
+---------+
| dump    |
| dump2   |
| dump4   |
| dump5   |
| pro     |
+---------+

我正在使用正则表达式从产品表中获取这些结果,该正则表达式关键字在任何地方都包含字符串du
我用过select * from products where keyword LIKE '%[du]%';
,但它返回的是空集。
我在这里做错了什么?

标签: sqlregex

解决方案


如果你必须使用正则表达式,你可以只使用du作为正则表达式;这将匹配du关键字中任何位置的字符串:

SELECT * 
FROM products
WHERE keyword REGEXP 'du'

输出:

keyword
dump
dump2
dump4
dump5

dbfiddle 上的演示


推荐阅读