首页 > 解决方案 > Sqlite 检查逗号分隔的数字字符串是否包含数字

问题描述

如何检查Sqlite中的字符串是否包含数字?该字符串是逗号分隔的正数,不以 0 开头。我需要检查它是否包含其他数字?

前任

PS
逗号分隔的数字是Android MMS Api,不是我能控制的。

标签: sqlstringsqlitecsv

解决方案


这是使用字符串函数的一种选择:

',' || mycsv || ',' like '%,' || myval || ',%' as found

mycsv表示您的逗号分隔字符串,并且myval是您要查找的值。

这将返回一个0/1值,指示该值是否存在于 CSV 字符串中。您可以在where您喜欢的查询的子句中使用它。

DB Fiddle 上的演示

with t as (
    select '1,2,1' as mycsv, 5 as myval
    union all select '35,55,15', 5
    union all select '5', 5
    union all select '0,5,1', 5
)
select t.*, ',' || mycsv || ',' like '%,' || myval || ',%' as found
from t
我的csv | 迈瓦尔 | 成立
:------- | ----: | ----:
1,2,1 | 5 | 0
35,55,15 | 5 | 0
5 | 5 | 1
0,5,1 | 5 | 1

推荐阅读