如何在SQLITE中选择部分包含字符串的列

时间:2015-02-12 19:37:34

标签: sqlite

我需要在表中搜索行,我需要选择部分以提供的值开始的值。 我知道如何搜索模式,但我在表格中有模式,而不是价值,我不知道它是否是'可能。 我的问题在某种程度上类似于LIKE,但落后于:)

示例:

如果在我的表中,我有值234,1567,31,3145,并且提供的值是 23434我需要选择234,如果提供的值是95214,我需要返回一个空的select,最后如果提供的值是314,我需要返回3145。 如果这可能吗?怎么样? 感谢

1 个答案:

答案 0 :(得分:2)

通常,您会根据模式检查列的值:

SELECT ... WHERE MyTable.Name LIKE 'prefix%'

但是,LIKE的两个操作数都是字符串表达式。 您可以简单地将列放在右侧:

SELECT ... WHERE '23434' LIKE MyTable.Pattern

如果列值不包含'%',则必须添加它:

SELECT ... WHERE '23434' LIKE MyTable.Prefix || '%'

要获得最长的匹配,您必须获得比其他所有比较大的匹配,即添加:

... ORDER BY MyTable.Prefix DESC LIMIT 1