程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQLite,检查TEXT字段中是否包含任何字母字符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决sqlite,检查TEXT字段中是否包含任何字母字符?

开发过程中遇到sqlite,检查TEXT字段中是否包含任何字母字符的问题如何解决?下面主要结合日常开发的经验,给出你关于sqlite,检查TEXT字段中是否包含任何字母字符的解决方法建议,希望对你解决sqlite,检查TEXT字段中是否包含任何字母字符有所启发或帮助;

您可以GLOB@R_450_4534@使用范围将它们选出来的方法:

SELECT * 
FROM MY_table
WHERE num GLOB '*[A-Za-z]*'

将此提琴与它一起使用:http ://sqlfiddle.com/#!7/4bc21/10

例如,对于这些记录:

   num
----------
1234567890
0987654321
1000000000
1000A00000
1000B00000
1000c00000

GLOB '*[A-Za-z]*' 将返回以下三个:

   num
----------
1000A00000
1000B00000
1000c00000

然后,您可以将其翻译为适当的内容deletE

deletE 
FROM MY_table
WHERE num GLOB '*[A-Za-z]*'

解决方法

好的,所以我有一个庞大的条目列表,并且在其中一列中(为简单起见,我们将其称为 num,
其中有一个数字,例如123456780000(它们的长度和格式都相同),但是有时有些字段看起来像这

12345678E000 
or 
12345678H000

现在,我需要删除 num 列不完全为数字的所有行。 num 的类型是 TEXT ,而不是 IntegeR
。因此,上述示例应删除,而123456780000不应删除。

我尝试了两种解决方案,其中一种有效,但笨拙且混乱,而另一种则根本不起作用。

我尝试的第一件事是

deletE FROM MY_TABLE WHERE abs(num) == 0.0

因为根据文档,如果给定 TEXT 值且 abs(X) 不能转换为实数,则 abs(X) 恰好返回0.0
。因此,我认为它应该让所有“仅数字”通过并删除其中带有字符的字符。但是它无能为力,甚至也不会删除一行。 __

我尝试的下一件事是

deletE FROM MY_TABLE WHERE num LIKE "%A%" OR "%B%" OR "%C%"

哪个似乎可行,但是数据库很大,我不确定会出现哪些字符,尽管我只能"%D%" OR "%E%" OR "%F%" OR ...处理整个字母,但感觉却很杂乱。我实际上想学习一些有关sqlite语言的知识。

最后,我的问题是:我该如何以一种很好而简单的方式解决这个问题?也许我的 abs(X) 解决方案出了点问题,还是我不知道/想过的另一种方式?

提前致谢。

编辑:根据我尝试过的评论SELECT abs(num) FROM MY_TABLE WHERE num like '%A%' ,它返回了以下内容

12345678.0

很奇怪。似乎已经按字母顺序出现的数字进行了拆分。该文档声称,如果无法将其转换为数字,它将返回0.0。唔..

大佬总结

以上是大佬教程为你收集整理的SQLite,检查TEXT字段中是否包含任何字母字符全部内容,希望文章能够帮你解决SQLite,检查TEXT字段中是否包含任何字母字符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。