首页 > 解决方案 > 如果数字有内部数字字符串

问题描述

如果在 php 数据库中有长数字,我想找到稳定的数字。

例如:

Stable number: 150

Number list: 1568940, 545198650, 15580

我可以在该号码列表中找到号码吗?

像这样:

   (1)(5)6894(0) = 150 have that 150 string
   545(1)986(5)(0) = 150 have that 150 string 
   (1)(5)58(0) = 150 have that 150 string 

可能吗?

标签: phpmysql

解决方案


好吧,您可以对这些字符串执行正则表达式搜索,但是在具有大型数据集的数据库中这样做可能会相当昂贵。

$subjects = ["1568940","545198650", "15580", "5551000", "015", "1805"];

foreach ($subjects as $subject) {
    if (preg_match("/(1)\d*(5)\d*(0)\d*/", $subject, $match) && count($match) == 4) {
        echo "$subject contains string 150\n";
    } else {
        echo "$subject does not contain string 150\n";
    }
}

这应该给你以下输出......

1568940 包含字符串 150

545198650 包含字符串 150

15580 包含字符串 150

5551000 不包含字符串 150

015 不包含字符串 150

1805 不包含字符串 150

在 MySQL...

SELECT fieldname FROM table WHERE fieldname REGEXP "(1)*(5)*(0)*";

如果您更详细地解释如何获取此数据以及为什么需要识别它是否包含这些字符,这可能会有所帮助。


推荐阅读