我需要在表中搜索行,我需要选择部分以提供的值开始的值。 我知道如何搜索模式,但我在表格中有模式,而不是价值,我不知道它是否是'可能。 我的问题在某种程度上类似于LIKE,但落后于:)
示例:
如果在我的表中,我有值234,1567,31,3145,并且提供的值是 23434我需要选择234,如果提供的值是95214,我需要返回一个空的select,最后如果提供的值是314,我需要返回3145。 如果这可能吗?怎么样? 感谢
答案 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