【发布时间】:2012-07-29 01:52:24
【问题描述】:
我有一个包含一串数字的字段
"2002 2005 2001 2006 2008 2344"
我们最好假设空格是分割,否则,它们是 4 个字符长。
我可以选择一个子字符串:
SELECT substr(years,1,4) FROM TABLE
但不知道如何检查每一个。我正在尝试查找包含最接近 0 的数字的行。
我可以ORDER BY 和LIMIT 1。
【问题讨论】:
-
嗯,如果所讨论的字段足够短以至于不需要在 DB 层中进行检索和数学运算(即不会导致速度变慢),我就将其拉出来带有光标的数据库并在其上使用
StringUtils#split(String)。从那里我将使用返回的String[],将其放入 Collections#sort() 方法并检索最小值。 -
@OceanLife 不幸的是,行太多了,并且需要 3 秒以上的时间才能收回需要检查的所有行(忽略计算然后对其进行)。作为获取一行的 sql 语句会快得多(即时)。 - 目前在java代码中运行。
-
无赖。听起来像是来自快速谷歌的问题。这个问题有一些想法,但它们看起来都很丑。用行值填充临时表的列并进行排序的想法可能会奏效。不过,不确定在每行之间清除它的开销。 stackoverflow.com/questions/11155886/…
-
字符串中有多少个数字?最大数量是多少?
-
@GordonLinoff 它各不相同。可能是 1,可能是 20。每一行都会有所不同:|
标签: android sql sqlite for-loop substring