首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按asc排序,但当值0放在codeigniter中的最后一个位置时

在codeigniter中,按asc排序时,将值0放在最后一个位置的方法是使用ORDER BY子句和CASE语句来实现。

首先,我们需要使用ORDER BY子句来指定排序的字段,然后使用CASE语句来判断字段值是否为0,如果是0,则将其排在最后。

以下是一个示例的SQL查询语句:

代码语言:txt
复制
SELECT column_name
FROM table_name
ORDER BY CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name ASC;

在上述查询语句中,column_name是要排序的字段名,table_name是要查询的表名。通过CASE语句,我们将字段值为0的记录排在最后,然后再按照升序排序其他记录。

对于codeigniter框架,可以使用其提供的数据库查询构建器来执行上述查询。以下是一个示例代码:

代码语言:txt
复制
$this->db->select('column_name');
$this->db->from('table_name');
$this->db->order_by("CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name", "ASC");
$query = $this->db->get();
$result = $query->result();

在上述代码中,column_name是要排序的字段名,table_name是要查询的表名。通过order_by方法,我们使用CASE语句来指定排序规则,然后按照升序排序。

请注意,上述示例中的代码仅为演示目的,实际使用时需要根据具体的表名和字段名进行修改。

希望以上信息能够帮助到您!如果您需要了解更多关于codeigniter或其他云计算相关的知识,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL排序与分页详解

MySQL中使用 LIMIT 实现分页 格式: LIMIT [位置偏移量,] 行数 第一个位置偏移量” 参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表第一条记录开始...(第一条记录位置偏移量是0,第二条记录位置偏移量是1,以此类推); 第二个参数“行数”指示返回记录条数。...SELECT * FROM table LIMIT (PageNo - 1) * PageSize, PageSize; 注意:LIMIT 子句必须放在整个 SELECT 语句最后!...这样产生结果和上述方法并不一样。...ORDER BY annual_salary DESC, last_name ASC; 2.选择工资不在 8000 到 17000 员工姓名和工资,工资降序,显示第21到40位置数据 SELECT

1.9K60
  • 2-DQL数据查询语言

    查询结果是一个虚拟表格 */ # 选中指定库 USE myemployees; # 查询表单个字段 SELECT last_name FROM employees; # 查询表多个字段...利用条件表达式筛选:基本条件运算符有>,,>=,是等价推荐采用表示不等) 2. 逻辑表达式查询:逻辑运算符有: &&,||,!...不写情况下默认升序 ORDER BY字句一般放在整个查询语句最后(LIMIT字句除外) */ # 工资由高到低排序 SELECT * FROM employees ORDER BY salary...DESC; # 由低到高 SELECT * FROM employees ORDER BY salary ASC; # 排序+筛选 查询部门编号>=90员工信息,入职时间先后进行排序...不写情况下默认升序 ORDER BY字句一般放在整个查询语句最后(LIMIT字句除外) */ # 工资由高到低排序 SELECT * FROM employees ORDER BY salary

    58210

    CI一些优秀实践

    最近准备接手改进一个别人用Codeigniter项目,虽然之前也有用过CI,但是是完全着自己意思写,没CI一些套路。...通过设置 $config['global_xss_filtering'] = TRUE; 开启自动过滤POST和COOKIE跨站脚本攻击,需要消耗一些资源。...当你需要更强大工具,你可以考虑使用 Object Relational Mapper ,就是鼎鼎大名 ORM 了,遗憾是,CodeIgniter 没有自带 ORM 库,不过也有一些其他很好选择...CodeIgniter工作过程 当有一个http请求,如http://www.google.com/blog/,首先进入CI引导文件index.php。.../,推荐采用第二种方式,这样显得比较整齐;BASEPATH,网站文档基本文件路径,写出来大概是htdoc/system/;到最后,index引导文件引入了codeigniter/codeigniter.php

    3.3K50

    数据库——排序与分页

    目录 排序数据 单列排序 多列排列 分页   分页原理 优点  MySQL 8.0新特性 排序数据 使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER...ASC; # 升序排列,结果差不多,就不展示了,默认升序排列 运行结果如下所示:         还可以使用列别名来排序,具体如下所示: SELECT employee_id,last_name...MySQL中使用 LIMIT 实现分页 格式: LIMIT [位置偏移量,] 行数         第一个位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移 量...”,将会从表第一条记录开始(第一条记录位置偏移量是0,第二条记录位置偏移量是 1,以此类推);第二个参数“行数”指示返回记录条数。...SELECT语句最后,如下所示!

    49320

    tp5框架前台无限极导航菜单类实现方法分析

    正序排序,如果有排序字段 sortField 值为 字段名称 如 sort 或者 listorder 等…,sortOrder 值为 asc(正序) 或 desc (倒序),建议这个排序,要不然会显示有点乱...,因为权重关系需要手动排序显示位置。...param 5:必填 二维数组 替换关键词,该参数一个数组为顶部导航所需要替换关键词(必填),linkUrl(url 链接)是固定模式,必须这么写,它值是:模块/控制器/方法,其他键为要替换关键词值为字段名称...第二个数组(选填)为二级菜单,第三个数组(选填)为N级菜单,此三个数组个数要对应 $this- createNavHtml() 方法模版参数个数,详见 createNavHtml() 方法解释。...模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结

    1.1K10

    qsort(),sort()排序函数

    排序之后结果仍然放在原来数组。...升序排列,若第一个参数指针指向“值”大于第二个参数指针指向“值”,则返回正; 若第一个参数指针指向“值”等于第二个参数指针指向“值”,则返回零; 若第一个参数指针指向...用法: sort(first,last) 在[first, last)元素进行排序升序排列 注意:sort默认排序后是升序。如果要想降序排列,需自己编写一个比较函数来实现。...对给定区间复制并排序 nth_element 找出给定区间某个位置对应元素 is_sorted 判断一个区间是否已经排好序 partition 使得符合某个条件元素放在前面 stable_partition.../升序排序 for(i=0;i<20;i++) cout<<a[i]<<endl; return 0; } 输出结果将是把数组a升序排序,说到这里可能就有人会问怎么样用它降序排列呢

    2.1K80

    MySQL数据库:第四章:排序查询

    排序列表 asc|desc;——————④ 特点: 1、 asc代表是升序。...升序是默认行为 desc代表是降序。 2、排序列表支持单个字段、表达式、函数、别名,也支持以上组合 3、order by子句一般放在查询语句最后!...#1、通过单个字段进行简单排序 #案例;工资降序 SELECT * FROM employees ORDER BY salary DESC; #2、通过表达式进行排序 #案例:查询员工编号>110姓名...查询员工姓名和部门号和年薪,年薪降序 姓名升序 SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM...查询邮箱包含 e 员工信息,并先按邮箱字节数降序,再按部门号升序 SELECT * FROM employees WHERE email LIKE '%e%' ORDER BY LENGTH(email

    72110

    【Java 进阶篇】使用 SQL 进行排序查询

    通常,我们可以使用 ASC(升序)和 DESC(降序)关键字来指定排序顺序。默认情况下,如果未指定排序顺序,将升序进行排序。...下面是一个基本排序查询示例,假设我们有一个名为 employees 表: SELECT * FROM employees ORDER BY last_name ASC; 在上面的示例,我们选择了...具体来说,我们将 “High” 重要性产品排在第一位,然后是 “Medium”,最后是 “Low”。任何不在这些类别产品都按照默认顺序排在最后。...NULL 值处理 在排序数据,我们还需要考虑如何处理 NULL 值。默认情况下,NULL 值通常会被排在排序顺序最前面(升序排序时)或最后面(降序排序时)。...; 在上面的查询,我们使用 NULLS LAST 来指定将 NULL 值放在排序结果末尾。

    34120

    JavaScript 数组排序【六大方法】「建议收藏」

    冒泡排序 先遍历数组,让挨着两个进行比较,如果前一个比后一个大,那么就把两个换个位置 数组遍历一遍以后,那么最后一个数字就是最大那个了 然后进行第二遍遍历,还是按照之前规则,第二大数字就会跑到倒数第二位置...//if判断,如果数组的当前一个比后一个大,那么两个交换一下位置 if(arr[j] > arr[j + 1]){ var tmp = arr[j]; arr[j] =.../*每次循环时候都会把最后一个数字依次排在最后 面,循环了几次,意味着后面已经排好了几个数,而 那些已经排好数也没必要再跟没排好数进行比较 即:数组长度length-已经循环次数i*/...选择排序 先假定数组0 个就是最小数字索引 然后遍历数组,只要有一个数字比我小,那么就替换之前记录索引 知道数组遍历结束后,就能找到最小那个索引,然后让最小索引换到第 0位置...把记录下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含关键词越来越多,当增量减至 1 ,整个数据列恰好被分成一组,算法便终止。

    7.6K31

    MySQL性能优化(三):索引

    索引原理 如果一本新华字典假如没有目录,想要查找某个字,就不得不从第一页开始查找,一直找到最后一页(如果要找字在最后一页),这个过程非常耗时,这种场景相当于数据库全表扫描概念,也就是循环表每一条记录看看该记录是否满足条件...这个原理就是数据库索引原理。这里拼音查找、部首查找是两种不同查找方式,通过每种方式都能快速找到,在数据库也有很多查找方式,称之为索引方法,有BTREE、HASH两种方式 ?...③索引字段 一个索引可以针对一个字段进行创建,也可以指定多个字段创建复合索引。...(ASC) 排序。...,没必要为整个值都创建索引 CREATE INDEX idx_username ON tbl_user(contnet(20) ASC); -- 复合索引:基于多个字段共同创建索引(区分度最大字段放在前面

    76920

    MySQL【知识改变命运】05

    ,然后把where 条件进行筛选,然后把符合条件记录放在临时表,最终返回给客户端; 总分在 200 分以下同学 我们都知道可以给列改名 那如果我们用修改后别名作为条件可以使用吗?...: •WHERE条件可以使⽤表达式,但不能使⽤别名 • AND优先级⾼于OR,在同时使⽤,建议使⽤⼩括号()包裹优先执⾏部分 •过滤NULL不要使⽤等于号(=)与不等于号(!...= , ) • NULL与任何值运算结果都为NULL 2:Order by 排序 语法: -- ASC 为升序(从⼩到⼤) -- DESC 为降序(从⼤到⼩) -- 默认为 ASC SELECT...ORDER BY {col_name | expr } [ASC | DESC], ... ; 数学成绩从低到⾼排序(升序) 如果值为NULL呢?...查询同学各⻔成绩,依次数学降序,英语升序,语⽂升序⽅式显⽰ 类似于查字典,先会排math ,然后English,最后chinese 查询同学及总分,由⾼到低排序 我们思考个问题oder

    6510

    MySQL 查询专题

    你可以使用 ASC 或 DESC 关键字来设置查询结果是升序或降序排列。 默认情况下,它是升序排列。...在指定一条 ORDER BY 子句,应该保证它是SELECT语句中最后一条子句,否则这将报错 不限制是否使用非选择列进行排序 除了能用列名指出排序顺序外,ORDER BY 还支持相对列位置进行排序,...下标从 0 开始,当根据不出现在 SELECT 清单列进行排序时,不能采用这项技术 如果想在多个列上进行降序排序,必须对每一列指定 DESC 关键字。...在升序排序时可以指定它。实际上,指定 ASC 没有多大用处 在对文本性数据进行排序时,A 与a 相同吗?a位于 B 之前,还是Z之后?这些问题不是理论问题,其答案取决于数据库设置方式。...所有这些限制以及更多限制都可以用全文本搜索来解决。在使用全文本搜索,MySQL不需要分别查看每个行,不需要分别分析和处理每个词。MySQL 创建指定列各词一个索引,搜索可以针对这些词进行。

    5K30

    MySQL数据库:第四章:排序查询

    asc|desc;——————④特点:1、asc代表是升序。...升序是默认行为desc代表是降序。2、排序列表支持单个字段、表达式、函数、别名,也支持以上组合3、order by子句一般放在查询语句最后!...>110ORDER BY salary12(1+IFNULL(commission_pct,0));#3、通过别名进行排序#案例:查询员工编号>110姓名、编号、年薪,并且年薪降序SELECT last_name...;#4、通过函数结果进行排序#案例:姓名长度进行升序SELECT LENGTH(last_name) len,last_nameFROM employeesORDER BY len;#5、支持多个字段或多个表达式排序...查询员工姓名和部门号和年薪,年薪降序 姓名升序SELECT last_name,department_id,salary12(1+IFNULL(commission_pct,0)) 年薪FROM

    15430

    SQL学习之SQL注入学习总结

    group_concat([DISTINCT] 要连接字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) ?...Count()---聚集函数,统计元祖个数 ? rand()---用于产生一个0~1随机数 ? floor()---向下取整 ?...基于时间盲注 基于原理是,当对数据库进行查询操作,如果查询条件不存在,语句执行时间便是0.往往语句执行速度非常快,线程信息一闪而过,得到执行时间基本为0。...但是如果查询语句条件不存在,执行时间便是0,利用该函数这样一个特殊性质,可以利用时间延迟来判断我们查询是否存在。这便是SQL基于时间延迟盲注工作原理 首先理解一下下面的语句: ?...剩余步骤和基于布尔差不多,只是加了一个if判断语句进行判断 获取表名: ? 获取列名: ? 获取内容: ? 总结  本文总结了关于sql注入报错注入和盲注一些原理以及测试方法。

    1.1K40

    Cassandra查询操作趟坑记录

    , bornDate asc, createDate desc ) 1.主键顺序查询限制 ​ cassandra主键是一个partition key主键和多个clustering key复合主键,而主键查询顺序必须与定义表结构一致...* from employee where bornDate in ('1999-01-01','1999-01-02') and name = '张三' 3.范围主键查询限制 ​ cassandra范围查询只能放在条件查询最后一个位置...='张三' and age >18 and phone = '123456' 当然也并不是不能这么做,不过那样必须加上ALLOW FILTERING,并不建议这么做 也就是下面这种写法是没问题 select...​ cassandra在创建表设置一个排序规则,默认以此进行规则排序,如当前表,默认以正序age,正序bornDate和倒序createDate, 手动设置倒序只有一种方式,即将所有排序字段全部颠倒...5.排序对分区主键条件限制 ​ cassandra只要使用排序,无论是使用默认排序规则还是相反排序规则,分区主键只能使用等于查询,(可以使用in,但是只能IN一个数据), ​ 所以这样写就是错误

    3.1K20

    SQL命令 ORDER BY(一)

    ORDER BY子句是SELECT语句中最后一个子句。 它出现在FROM、WHERE、GROUP BY和HAVING子句之后。...2,1 列号指的是SELECT子句列表位置。...它们不指向表本身位置。 但是,可以列号对SELECT *结果进行排序; 如果RowID是公共,它就被计算为第1列,如果RowID是隐藏,它就不被计算为第1列。...SELECT子句列表第三个列表项(C)数据值升序排序; 在这个序列,它降序对第7个列出项(J)值进行排序; 在其中,它升序对第一个列出项(A)值进行排序。...ORDER BY值列表重复列不起作用。 这是因为第二种排序在第一种排序顺序之内。 例如,ORDER BY Name ASC、Name DESC升序对Name列进行排序

    2.6K30

    MySQL数据库命令大全

    by 字段 -- asc -- asc从小到大排列,即升序 -- desc -- desc从大到小排序,即降序 -- 查询年龄在18到34岁之间男性,按照年龄从小到大到排序 select * from...34) and gender ='女' order by height desc,age asc,id desc; -- 排序有优先级,第一个排序,后面是次排序,在保证主排序不变情况下,能排就排,...(height) > 160 and gender='女'; -- limit 起始位置,个数, 这个一定要放在最后 -- 分页 -- limit start, count -- limit 放在最后面...(注意) 起始位置 = (页数-1)*每页个数 -- 限制查询出来数据个数 -- 查询前5个数据 select * from students limit 0,5; -- 每页显示2个,第1个页面...order by classes.name asc; -- 当时同一个班级时候,按照学生id进行从小到大排序 select classes.name,students.* from students

    3.4K20

    数据分析EPHS(5)-使用Hive SQL计算数列统计值

    对应统计结果如下: ? 接下来先进入实战部分,最后再总结下本地Hive使用过程一些坑。...也就是说,从小到大排序之后,1累积概率为10%,小于等于2累积概率是30%,小于等于3累积概率是60%,如果我们之前理解,中位数就是3,那么按照等频划分的话,中位数是恰好累积概率取得50%时候那个数...二者其实可以统一到一个公式: 1)假设n = 149 ,(n+1)/2 = 75 ,小数部分为0,那么中位数=75位置数 * (1 - 0)+ 76位置数 * (0 - 0) 2)假设n = 150...,(n+1)/2 = 75,小数部分为0.5,那么中位数=75位置数 * (1 - 0.5)+ 76位置数 * (0.5 - 0) 所以,我们可以把这个过程分解为三个步骤,第一步是给数字进行一个编号...这里小数部分不为0,意味着我们不仅要拿到rank=75数,还要拿到rank=76数,我们最好把其放到一行上,这里使用lead函数,lead函数作用就是拿到分组排序后,下一个位置或下n个位置数,咱们在后面的博客还会细讲

    3.2K51
    领券