在数据库查询中使用replace或regex

本文关键字:replace regex 数据库 查询 | 更新日期: 2023-09-27 18:10:20

我正在简单地阅读c# 5,所以我想到了一个问题:
假设我们在数据库中有一个表,它有几行,每一行是一个字符串字段,现在我想从字段中删除所有元音。所以我们可以这样写:

var query = names
    .Select (n => n.Replace ("a", "").Replace ("e", "").Replace ("i", "")
            .Replace ("o", "").Replace ("u", ""))
    .Where (n => n.Length > 2)
    .OrderBy (n => n);

你可以看到.Replace方法调用了五次,所以我们可以很容易地使用regex代替字符串的replace:

n => Regex.Replace (n, "[aeiou]", "")

该书建议,在数据库查询中,最好使用字符串的替换而不是正则表达式的替换。
我的问题是它是如何区分的?哪一个效率更高?

在数据库查询中使用replace或regex

为什么书上说要避免使用RegEx

是因为RegEx比其他内置比较函数慢

并考虑当您使用RegEx处理数千条记录时,时间复杂度将是多少。

以及内置比较函数的时间复杂度