首页 > 解决方案 > 如何从表格列中选择 4 位数字的组合?

问题描述

我有一张如下表:-

id | columnA | columnB | columnC
1    7234        3432    3245
2    1237        1123    6546
3    4421        9371    7324
4    1244        1424    4237

在我的select语句中传入“2374”如何选择组合记录?

我的预期结果应该是

id | columnA | columnB | columnC
1    7234        3432    3245
3    4421        9371    7324
4    1244        1424    4237

标签: mysqlsqlselect

解决方案


将数字字符串视为某种集合的唯一方法是使用正则表达式。使用“2374”作为字符串,您可以将其更改为正则表达式:

[2374]{4}

中的数字[]是字符集,{4}表示匹配4个与之匹配的字符。

请注意,这也将匹配4444可能不需要的内容。

然后你需要为每一列匹配这个:

SELECT *
FROM table
WHERE REGEXP_LIKE(columnA, '[2374]{4}') OR
 REGEXP_LIKE(columnB, '[2374]{4}') OR
 REGEXP_LIKE(columnC, '[2374]{4}')

尝试在 SQL 中做这件事真的不是一件明智的事情。编程语言在这方面做得更好。


推荐阅读