字段与" x"不同的行的首选项

时间:2014-07-28 15:10:45

标签: mysql

我想查询我的数据库,这样我就不会排序按顺序排序,而是在给定字段与0首先不同时查找行如果没有带字段的行,则获取排序>!“0”。实现这一目标的最佳方法是什么,甚至可以这样做?

假设该字段的值可以是-100到0到100

举例:

考虑 LIMIT 等于3且考虑的字段为 field1

FIELD1

10

0

-20

-40

另一组:

FIELD1

0

0

-100

50

在第一组中,提取的结果将 10,-20和-40 (按任意顺序),而在第二组中,它们应为 -100,50和0 (任何零,任何顺序)。 首先,我想检查数据库中是否存在!= 0,如果 true 提取这些,并且仅在0之后提取,直到我填写 LIMIT

1 个答案:

答案 0 :(得分:0)

这样的事情? 它不清楚 AT ALL 你想要什么,所以我只是在这里猜测。

I want to query my database so that I don't order by or order by desc but instead seek rows when a given field is different from 0

向我寻找行意味着找到所有不是0的行。

only after get others ordered by if there are no rows with field != "0".

对我而言,这意味着在子查询中对行进行排序,其中字段不为0.

考虑到这一点可能是这个查询?

SELECT * FROM table t
WHERE field IN (
    SELECT field 
    from table t
    WHERE field <> 0 
    ORDER BY field
)

没有数据目前尚不清楚你想要什么。但我觉得这样的事情就是你要问的......你也可以试试

SELECT * FROM table t
WHERE field <> 0
ORDER BY field