我有一个应用版本,例如2.15.3。
我的应用程序的模块版本以应用程序版本的前两个字符开头。所以模块版本可能是2.15.1.8。
模块版本号存储为名为version的varchar列。
如果满足以下两个条件,则模块仅适用于应用版本:
我希望能够从符合上述两条规则的表格中选择所有模块。
因此对于app 2.15.3,它应该返回2.15.1.8,但不是2.16.1.2,而不是1.14.1.2。
我该怎么做?
答案 0 :(得分:1)
我相信我找到了一种方法(虽然我可以批评):
SELECT *
FROM my_table
WHERE substring_index(version, '.', 1) = :APP_NUM_ONE
AND substring_index(substring_index(version, '.', 2), '.', -1) <= :APP_NUM_TWO;
在这种情况下,其中:APP_NUM_ONE = 2,并且:APP_NUM_TWO = 15。