首页 > 解决方案 > 数字小于 10 的正则表达式

问题描述

我有一个表,其中有一列以这种方式存储数据:

1:29,3:20,5:0,4:0,2:76

我想在 PHP(或一般的 MySQL)中发出查询请求,并获取" : ".

因此,在这种情况下,我有( 29 , 20 , 0 , 0 , 76 ),并且因为我有一个小于 10 的数字,所以我将要占用这一行。

标签: phpmysqlregex

解决方案


一般来说,存储逗号分隔值在 SQL 中被认为不是一个好的设计,因为它会导致违反数据规范化规则,此外还面临许多其他问题。但是既然你已经完成了并且想要一个正则表达式来解决你的问题,你可以使用这个正则表达式,

:[0-9](,|$)

这是一个演示

在 mysql 中,您可以编写这样的查询,

select * from tablename where columnname regexp ':[0-9](,|$)';

这将为您提供在冒号后面至少有一个逗号分隔值小于 10 的行。


推荐阅读