是否有可能通过用户输入从现有数据中获得反转结果?

时间:2015-12-01 09:59:35

标签: mysql

对不起我的头衔,我不知道怎么描述。

我有一张表t1如下:

id  t_id   time
 1   1     201501
 2   1     201502

我希望在201501, 201502, 201503, 201504, 201505, 201506等指定时段内获取记录集,而不是t1中的时间。用户输入传递的指定时间段。

我想要这样的结果:

id  t_id   time
 1   1     201503
 2   1     201504
 3   1     201505
 4   1     201506

是否可以在一个sql中获得结果?

我用php收集用户输入。

2 个答案:

答案 0 :(得分:2)

SELECT a.*
  FROM 
     ( 
       SELECT 201501 user_input
        UNION
       SELECT 201502
        UNION
       SELECT 201503
        UNION
       SELECT 201504
        UNION
       SELECT 201505
        UNION
       SELECT 201506
     ) a
  LEFT 
  JOIN t1 b
    ON b.time = a.user_input
 WHERE b.id IS NULL;

答案 1 :(得分:1)

你可以尝试这样的事情(对不起,我这里没有数据库,所以我无法测试它):诀窍是首先用UNION SELECT选择你的值。

SELECT v.x from (SELECT 201501 v
UNION SELECT 201502 v
UNION SELECT 201503 v
UNION SELECT 201504 v
UNION SELECT 201505 v
UNION SELECT 201506 v) x
 WHERE v.x not in (SELECT time FROM t1)