在 sqlite 中删除 9D(十六进制)字符

Posted

技术标签:

【中文标题】在 sqlite 中删除 9D(十六进制)字符【英文标题】:9D (Hex) character remove in sqlite 【发布时间】:2012-08-14 18:30:23 【问题描述】:

我想从 my_table 中选择 family LIKE '%HEX(9D)' 家庭十六进制格式以 9D 十六进制结尾 我将excel文件转换为sqlite数据库,但是 我的一些数据在结束时添加了 9D 我无法正确搜索 请指导我 如何去除family栏中的9D十六进制字符?

【问题讨论】:

【参考方案1】:

要在 SQLLite 中获取 HEX(9D),请使用 cast(X'9D' as text)。所以要更新使用类似的东西:

UPDATE YOURTABLE SET YOURCOLUMN=REPLACE(YOURCOLUMN,cast(X'9D' as text),'') where YOURCOLUMN like '%'||cast(X'9D' as text)||'%';

或者只是

UPDATE YOURTABLE SET YOURCOLUMN=REPLACE(YOURCOLUMN,X'9D','') where YOURCOLUMN like '%'||x'9D'||'%';

【讨论】:

当我运行此脚本时显示此错误 SQL 错误:接近“'9D'”:语法错误 哦,谢谢。当我使用 like '%'||x'9D'||'%' 时出现问题;不检索所有记录,它返回一条记录,为什么? 当我只使用这个代码时会发生什么?--> UPDATE YOURTABLE SET YOURCOLUMN=REPLACE(YOURCOLUMN,X'9D','') 效果一样。如果 YOURCOLUMN 不包含 x'9d',则 REPLACE 将返回 YOURCOLUMN,因此不会更改 YOURCOLUMN。

以上是关于在 sqlite 中删除 9D(十六进制)字符的主要内容,如果未能解决你的问题,请参考以下文章

十六进制值的 SQLITE CHECK 约束

FastAPI - 格式错误的十六进制 UUID 字符串

十六进制转汉字

C语言试题十六之写删除字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

使用正则表达式将十六进制转换为ascii

Python-十六进制与字符串转换脚本