SQLite 文本字段中的奇怪符号
Strange symbols in SQLite text field
我有一个简单的 SQLite 数据库,其中的数据(名称)是使用 C# 应用程序添加的。这些名称通常是从 .pdf 文件中复制和粘贴的。我发现有时从 .pdf 复制名称会生成一些奇怪的符号。在使用 SQLite DB Browser 浏览数据期间,我看到我的数据库中的一些记录混合了 'DC3'、'FS'、'US' 等等:
这与我的查询中的 'WHERE' 子句混淆,例如以下查询将产生 0 个结果:
SELECT Id FROM tblPerson WHERE Name = 'Alex Denelgo';
谁能解释一下这些符号是什么以及我如何编写查询来查找所有“损坏的”名称记录?我无法使用浏览器手动逐个查看,因为数据已经包含数千个不同的名称。
这些符号似乎是不可打印的 ASCII 控制字符。
我找到“损坏”记录的方法是使用正则表达式。如果你和我有同样的问题,你可以使用下面的查询来查找这些类型的记录。我正在选择所有记录减去仅包含 a-z、space 和点的字母的记录,您当然可以根据您的情况修改正则表达式:
SELECT Name FROM tblPerson
EXCEPT
SELECT Name FROM tblPerson WHERE Name REGEXP "^[A-Za-z .]+$";
我有一个简单的 SQLite 数据库,其中的数据(名称)是使用 C# 应用程序添加的。这些名称通常是从 .pdf 文件中复制和粘贴的。我发现有时从 .pdf 复制名称会生成一些奇怪的符号。在使用 SQLite DB Browser 浏览数据期间,我看到我的数据库中的一些记录混合了 'DC3'、'FS'、'US' 等等:
这与我的查询中的 'WHERE' 子句混淆,例如以下查询将产生 0 个结果:
SELECT Id FROM tblPerson WHERE Name = 'Alex Denelgo';
谁能解释一下这些符号是什么以及我如何编写查询来查找所有“损坏的”名称记录?我无法使用浏览器手动逐个查看,因为数据已经包含数千个不同的名称。
这些符号似乎是不可打印的 ASCII 控制字符。
我找到“损坏”记录的方法是使用正则表达式。如果你和我有同样的问题,你可以使用下面的查询来查找这些类型的记录。我正在选择所有记录减去仅包含 a-z、space 和点的字母的记录,您当然可以根据您的情况修改正则表达式:
SELECT Name FROM tblPerson
EXCEPT
SELECT Name FROM tblPerson WHERE Name REGEXP "^[A-Za-z .]+$";