【问题标题】:How to order by use in codeigniter如何在 codeigniter 中使用来订购
【发布时间】:2021-10-03 03:53:38
【问题描述】:

我的表格数据是这样的

ID NAME order
1 English 0
2 Italian 1
3 Spanish 2
4 Hindi 1
5 Bengali 3
6 Tamil 2

我的查询

    $this->db->select('*');
    $this->db->from('languages');
    $this->db->order_by('order','asc');
    $query = $this->db->get();

我想要这样的数据-1,1,2,2,3,0

ID NAME order
2 Italian 1
4 Hindi 1
3 Spanish 2
6 Tamil 2
5 Bengali 3
1 English 0

【问题讨论】:

  • 如果你想让它出现在最后,为什么要将它设置为0?您是否尝试将其设置为 4 或 10000 左右?
  • 当插入值或列总是0时,接下来设置顺序。

标签: php mysql codeigniter sql-order-by codeigniter-3


【解决方案1】:

试试这个:

create table order_1(
id int(4),
name varchar(20),
`order` int(3) );

insert into order_1 values (1,'English',0), (2,'Italian',1), (3,'Spanish',2),(4,'Hindi',1),(5,'Bengali',3),(6,'Tamil',2);


SELECT * FROM order_1 ORDER BY `order`= 0, `order`;

【讨论】:

  • 来自 MySQL docs-- ORDER BY 中的两列可以按相同方向(两个 ASC,或两个 DESC)或相反方向(一个 ASC,一个 DESC)排序。索引使用的一个条件是索引必须具有相同的同质性,但不必具有相同的实际方向。如果查询混合了 ASC 和 DESC,如果索引也使用相应的混合升序和降序列,则优化器可以在列上使用索引: SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC; dev.mysql.com/doc/refman/8.0/en/order-by-optimization.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
相关资源
最近更新 更多