0

我正在尝试构建一个复杂的查询。我有一个表,在那个表中,我想添加一个人工字段match_count,使用SELECT *,match_count FROM. 那不是问题。问题是这样的:我有几个正则表达式,我想用找到的每个正则表达式来增加 match_count。这些表达式将应用于表格的多个字段,例如param1 REGEXP "reg1"param2 REGEXP "reg2"、 和param1 REGEXP "reg3"。列可以重复使用,表达式也可以重复使用,但是 match_count 字段应该对应于匹配的数量。

如果可能的话,如果一个列多次匹配一个正则表达式,匹配计数不是增加一,而是增加这些匹配的数量,这也将是很酷的。

4

1 回答 1

2

您可以对 REGEXP 表达式的结果求和:

SELECT *,
    param1 REGEXP "reg1" +
    param2 REGEXP "reg2" +
    param1 REGEXP "reg3" AS match_count
FROM

如果可能的话,如果一个列多次匹配一个正则表达式,匹配计数不是增加一,而是增加这些匹配的数量,这也将是很酷的。

我认为这在 MySQL 中是不可能的。然而,它在许多通用语言中是可能的。

于 2012-07-30T11:07:28.700 回答