我一直在尝试想出一些伪逻辑来弄清楚以下内容。
我有一张大约有十万条记录的表
主键是 ID,例如
ID, col1, col2, col3
A3242X,,,
B323X,,,
A3242Y,,,
Y32YXX,,,
现在我有用户输入,例如 A3242XABC123
and Y32
and ... and ...
我的输出是找出表中的所有记录,其中表中的 ID 以任何输入值开头,或者任何输入值以 Id 表中的任何值开头。
在这种情况下,输出将是
A3242X (ID A3242XABC123 begins with this) and
Y32YXX (the input Y32 begins with this).
我的想法是我会遍历输入值,比较然后从末尾减去一个字符......例如
search_var=A3242XABC123;
Loop
select id from table where value = search_var;
if found exit;
search_var = substr(search_var, 0,length(search_var-1));
end;
--基本上循环直到找到值。
--对于第二种情况,我想我可以做一些像
search_var[1] = A3242XABC123;
search_var[2] = Y32YXX;
for i = 1 to 2 loop
select id from table where id begins search_var;
add id to result array;
end;
我正在寻找一种有效的方法来做到这一点。在大多数情况下,用户最多只能输入几十个 ID。