mysql - 如何从表格列中选择 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
解决方案
将数字字符串视为某种集合的唯一方法是使用正则表达式。使用“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 中做这件事真的不是一件明智的事情。编程语言在这方面做得更好。
推荐阅读
- google-apps-script - 如何使用 Appscript 从 Admin SDK >> Reports API 将已删除、存档、暂停的用户数据提取到 Google 工作表
- php - Laravel - ErrorException:未定义的变量:Laravel Passport 登录中的请求
- python - 没有名为“pynput”的模块
- laravel - Laravel - Eloquent 选择并计算一些相关数据
- python - 为什么画布不能滚动?
- node.js - bcrypt.compare 总是返回 false
- swift - Swift 的 FileHandle.read 或 macOS 上的数据缓冲区中的内存泄漏
- python - ROS2 python节点位置
- kubernetes - 如何在 kubectl 中将 READY、STATUS、RESTARTS、AGE 等作为自定义列?
- python - 连续绘制两个不同的 Matplotlib 图