database - SQLite 中的 Base64?

标签 database sqlite filter base64

有没有类似的东西

SELECT * FROM foo WHERE base64(bar) LIKE '%bararar%'

在 SQLite 中?

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

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

最佳答案

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);
  }
}

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

关于database - SQLite 中的 Base64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246538/

相关文章:

sql - RAISERROR() 的语法含义是什么

objective-c - 如何在保留斯堪的纳维亚字母的同时一直为 SQLite 正确编码 NSString

image-processing - LoG(高斯拉普拉斯)滤波器、一阶和二阶导数高斯滤波器有什么区别?

jquery - 在 Django 中实现过滤/搜索的最佳方法

python - 如何通过将 pandas Dataframe 列与 Set 进行比较来创建新列表

database - DB 层成员应该是静态的还是实例的?

python - 检查对象是否存在

python - 同一台服务器上的多个版本的 Sqlite3 for Python

java - 安卓 : SQLite check if data exist and update

video - ffmpeg 将现有的 filter_complex 与 upscaleto 结合起来,例如720p