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