我在SQLite中有一个包含表
的项目前缀表
prefix id
T6A-T6Z 1
YAA-YAZ 2
ZAA-ZAZ 3
7RA-7RZ 4
7TA-7YZ 5
例如,我的值“T6C”落在第一条记录的范围内。我需要该记录的ID。我将REGEXP作为一种可能的解决方案,但我读到的内容我需要一个回调函数这个应用程序是在Adobe Air中开发的,我找不到实现回调的方法。 我也试过了通配符“_”的方法,但是在这方面做得不够。
任何帮助都会很棒。
答案 0 :(得分:0)
这是一种糟糕的数据格式。您应该在单独的字段中具有开始值和结束值。那好吧。您可以使用字符串操作来执行此操作:
select *
from prefix
where 'T6C' between substr(prefix, 1, 3) and substr(prefix, -3, 3)
答案 1 :(得分:0)
如果前缀范围遵循前四个(1-4)示例id的简单模式,那么使用前缀(范围)开头的前两个字符将是一个简单的LIKE查询:
SELECT id FROM table WHERE前缀LIKE'T6%';
但是你的第五个(5)示例id的前缀范围超出了其他四个代表的预期-7TZ范围结束约定。如果您对前缀范围进行了设计控制,那么LIKE是另一种选择。