0
这是table
:MYSQL使用REGEXP
ID | Amount
---|---
0 | 1,2,3
1 | 11,12,13
2 | 21,23
3 | 2,3
细胞可以有任意数量的由逗号分隔的任何数字。我需要选择其中包含金额的行。由于MYSQL REGEXP不支持lookaheads/lookbehinds,所以我需要一个合适的regex表达式来实现这一点。如果有更有效的解决方案而不是正则表达式,我愿意接受建议。
实现这一目标的一个小白方式是
SELECT * FROM table WHERE
(Amount LIKE '2' OR Amount LIKE '%,2' OR Amount LIKE '2,%' OR Amount LIKE '%,2,%)
,但我宁愿避免这种情况。
这是伟大的!当我使用分隔的Amount值设计表格时,我没有意识到使用FIND_IN_SET()让我的生活变得如此简单。感谢您指出!所以,你所说的是,有可能有10-15倍大的表更有效率,但具有唯一的金额值,而不是在单个单元中排列金额?鉴于表中有成千上万的行,这将工作得更快 - FIND_IN_SET()或4 LIKE查询在我的问题? – Aydin4ik