表1包含以下列
问题 T1 T2
t1和t2是INT
问题是来自t1,t2
的值的结果t1可以是1,2,3,4,5 t2可以是6,7,8,9,10
我可以编写一个说
的SQL查询SELECT * from Table1 WHERE(t1 = 1 OR t1 = 2 OR t1 = 3 OR t1 = 4 OR t1 = 5)AND(t2 = 6 OR t2 = 7 OR t2 = 8 OR t2 = 9 OR t2 = 10 )
但是我没有写出整个表达式(如上所示),而是想将它存储到另一个表中(称为Table2)
表2包含以下列 data_entered data_results
data_entered为1 data_results是一个包含以下数据的字符串“(t1 = 1或t1 = 2或t1 = 3或t1 = 4或t1 = 5)”
data_entered为2 data_results是一个包含以下数据的字符串“(t2 = 6或t2 = 7或t2 = 8或t2 = 9或t2 = 10)”
所以我想创建一个QUERY,我可以说
SELECT * from Table1 WHERE ...(并指定data_entered)结果应该与上面提到的SQL相同。
请帮忙。
由于
答案 0 :(得分:2)
对于第一个查询,您可以使用IN代替:
select * from table1 where t1 in (1,2,3,4,5) and t2 in (6,7,8,9,10);
然后,不是将sql代码存储在table2中,而是将每个值存储在单独的行中。
create table data (entered, result);
insert into data values (1, 1);
insert into data values (1, 2);
...
insert into data values (2, 10);
然后你可以这样做:
select *
from table1
where t1 in (select result from data where entered = 1)
and t2 in (select result from data where entered = 2);