Select 大于的列?
Select columns thats greater than?
我有一个 table(mysql) 并且在我的查询中我想只获取大于或等于 4 的列,但我不知道该怎么做。
SELECT * FROM my_table WHERE * (all foo columns foo1-foo7) >= 4 AND date = '2015-09-03'
我的 table 看起来像:
id | foo1 | foo2 | foo3 | foo4 | foo5 | foo6 | foo 7 | date
-----------------------------------------------------
1 | 5 | 10 | 8 | 0 | 2 | 4 | 5 | 2015-09-03
2 | 7 | 18 | 0 | 1 | 0 | 5 | 7 | 2015-09-04
所以我的结果应该是:
id | foo1 | foo2 | foo3 | foo6 | foo 7 | date
-----------------------------------------------------
1 | 5 | 10 | 8 | 4 | 5 | 2015-09-03
这可能吗?
试试这个
SELECT * FROM my_table WHERE id >= 4 AND foo1 >=4 AND foo2 >=4 AND date = '2015-09-03'
填写其余的foos,避免同时使用IS和比较运算符。
更合适的答案(对于 RDBMS)是使用两个具有外键关系和约束的表。
MASTER
ID DATE
1 2015-09-03
DETAIL
ID MASTER_ID MYNAME MYVALUE
1 1 tom 5
2 1 bill 10
3 1 kev 8
4 1 bob 0
5 1 other 2
6 1 bleh 4
7 1 snarf 5
然后
SELECT m.id, m.date, d.myvalue FROM master m
INNER JOIN detail d ON m.id = d.master_id
WHERE m.date = '2015-09-03' AND d.myvalue > 4
这会为您提供多行,但您可以根据需要使用 RDBMS 的 PIVOT 函数将其转换为其他内容。
例如
SELECT m.id, m.date, d.myvalue FROM master m
INNER JOIN detail d ON m.id = d.master_id
WHERE m.date = '2015-09-03' AND d.myvalue > 4
PIVOT myvalue FOR myname
(sql 服务器语法) 你最终会得到
ID date tom bill kev snarf
1 2015-09-03 5 10 8 5
我有一个 table(mysql) 并且在我的查询中我想只获取大于或等于 4 的列,但我不知道该怎么做。
SELECT * FROM my_table WHERE * (all foo columns foo1-foo7) >= 4 AND date = '2015-09-03'
我的 table 看起来像:
id | foo1 | foo2 | foo3 | foo4 | foo5 | foo6 | foo 7 | date
-----------------------------------------------------
1 | 5 | 10 | 8 | 0 | 2 | 4 | 5 | 2015-09-03
2 | 7 | 18 | 0 | 1 | 0 | 5 | 7 | 2015-09-04
所以我的结果应该是:
id | foo1 | foo2 | foo3 | foo6 | foo 7 | date
-----------------------------------------------------
1 | 5 | 10 | 8 | 4 | 5 | 2015-09-03
这可能吗?
试试这个
SELECT * FROM my_table WHERE id >= 4 AND foo1 >=4 AND foo2 >=4 AND date = '2015-09-03'
填写其余的foos,避免同时使用IS和比较运算符。
更合适的答案(对于 RDBMS)是使用两个具有外键关系和约束的表。
MASTER
ID DATE
1 2015-09-03
DETAIL
ID MASTER_ID MYNAME MYVALUE
1 1 tom 5
2 1 bill 10
3 1 kev 8
4 1 bob 0
5 1 other 2
6 1 bleh 4
7 1 snarf 5
然后
SELECT m.id, m.date, d.myvalue FROM master m
INNER JOIN detail d ON m.id = d.master_id
WHERE m.date = '2015-09-03' AND d.myvalue > 4
这会为您提供多行,但您可以根据需要使用 RDBMS 的 PIVOT 函数将其转换为其他内容。
例如
SELECT m.id, m.date, d.myvalue FROM master m
INNER JOIN detail d ON m.id = d.master_id
WHERE m.date = '2015-09-03' AND d.myvalue > 4
PIVOT myvalue FOR myname
(sql 服务器语法) 你最终会得到
ID date tom bill kev snarf
1 2015-09-03 5 10 8 5