大佬教程收集整理的这篇文章主要介绍了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
以上是大佬教程为你收集整理的SQLite,检查TEXT字段中是否包含任何字母字符全部内容,希望文章能够帮你解决SQLite,检查TEXT字段中是否包含任何字母字符所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。