SQLite中的Base64?

nik*_*eee 8 database sqlite base64 filter

有没有类似的东西

SELECT * FROM foo WHERE base64(bar) LIKE '%bararar%'
Run Code Online (Sandbox Code Playgroud)

在SQLite?

如果没有,在其他SQL风格的数据库中是否还有其他可比较的函数?(MySQL,MSSQL等)

我真的需要知道这个,因为我有一个庞大的数据库,其中一些base64编码的字符串包含一个我必须过滤掉的特定字符.希望可以有人帮帮我.

Sam*_*eff 4

System.Data.SQLite 支持.NET 中的自定义函数。如果您使用的其他包装器不能执行此操作,请更改包装器。最新版本在这里:

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

它曾经在这里,但现在是主 SQLite 项目的一部分:

http://sqlite.phxsoftware.com/

例子:

[SQLiteFunction(Name = "Base64", Arguments = 1, FuncType = FunctionType.Scalar)]
class Base64SQLite : SQLiteFunction
{
  public override object Invoke(object[] args)
  {
    // assumes args[0] is a string, but you can handle binary data too
    var bytes = Encoding.UTF8.GetBytes(Convert.ToString(args[0]));
    return Convert.ToBase64String(bytes);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您要对此数据进行大量搜索,尤其是通配符搜索,那么您最好缓存数据(使用触发器)并将其放入 FTS 索引中。