sql的case when;以及在thinkphp中的使用

SELECT
count(case when shenfenid like "11%" then "北京" end)北京,
count(case when shenfenid like "12%" then "天津" end)天津,
count(case when shenfenid like "13%" then "河北" end)河北,
count(case when shenfenid like "14%" then "北京" end)山西,
count(case when shenfenid like "15%" then "内蒙古" end)内蒙古,
count(case when shenfenid like "41%" then "河南" end)河南
FROM lp_lianpiao

$result = M(‘lianpiao‘)->field(‘count(case when shenfenid like "11%" then "北京" end)beijing,
count(case when shenfenid like "12%" then "天津" end)tianjin,
count(case when shenfenid like "13%" then "河北" end)hebei,
count(case when shenfenid like "14%" then "山西" end)shanxi1,
count(case when shenfenid like "15%" then "内蒙古" end)neimenggu,
count(case when shenfenid like "21%" then "辽宁" end)liaoning,
count(case when shenfenid like "22%" then "吉林" end)jilin,
count(case when shenfenid like "23%" then "黑龙江" end)heilongjiang,
count(case when shenfenid like "31%" then "上海" end)shanghai,
count(case when shenfenid like "32%" then "江苏" end)jiangsu,
count(case when shenfenid like "33%" then "浙江" end)zhejiang,
count(case when shenfenid like "34%" then "安徽" end)anhui,
count(case when shenfenid like "35%" then "福建" end)fujian,
count(case when shenfenid like "36%" then "江西" end)jiangxi,
count(case when shenfenid like "37%" then "山东" end)shandong,
count(case when shenfenid like "41%" then "河南" end)henan,
count(case when shenfenid like "42%" then "湖北" end)hubei,
count(case when shenfenid like "43%" then "湖南" end)hunan,
count(case when shenfenid like "44%" then "广东" end)guangdong,
count(case when shenfenid like "45%" then "广西" end)guangxi,
count(case when shenfenid like "46%" then "海南" end)hainan,
count(case when shenfenid like "50%" then "重庆" end)chongqing,
count(case when shenfenid like "51%" then "四川" end)sichuan,
count(case when shenfenid like "52%" then "贵州" end)guizhou,
count(case when shenfenid like "53%" then "云南" end)yunnan,
count(case when shenfenid like "54%" then "西藏" end)xizang,
count(case when shenfenid like "61%" then "陕西" end)shanxi3,
count(case when shenfenid like "62%" then "甘肃" end)gansu,
count(case when shenfenid like "63%" then "青海" end)qinghai,
count(case when shenfenid like "64%" then "宁夏" end)ningxia,
count(case when shenfenid like "65%" then "新疆" end)xinjiang‘)->select();

时间: 2024-11-08 09:51:17

sql的case when;以及在thinkphp中的使用的相关文章

ThinkPHP中的模型

ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型类的关键词Model,再加上类文件后缀.class.php 案例:实现移动办公自动化系统的组织结构功能 ① 设计数据库db_think ② 设计数据表结构(tk_dept) id ???? 编号 ????int 自动增长 主键 name 部门名称 varchar(4

分享下ThinkPHP中如何使用sphinx

前一段时间工作中遇到的一些小问题,在网上找了很久,thinkphp是没有sphinx扩展的,那么我们可以自己扩展一个用,今天搞了好久,只能总结一点thinkphp调用sphinxapi的一段小代码首先我们把coreseek下载好,命名为coreseek,我们找到coreseek/etc中的csft_mysql.conf修改这个配置文件 复制代码 #源定义 source lemai { type                    = mysql sql_host                

thinkphp中查询数据库具体的使用方法

thinkphp中数据操作方法的使用: 一.where()条件 $model->where(条件值);    //条件值就是sql语句where后边的结果值 $goods->where('goods_price>1000 and goods_name like "诺%" ');    //sql语句where后边的信息都可以作为where方法的参数 $info=$goods->select(); 二.limit()限制条件 $model->limit(数字

ThinkPHP中视图模型详解.

很多TP的新手对于模型中的视图模型不甚了解,官方虽然有详细手册,但是对于初学者来说还是比较难以理解! 先简单说一下视图模型所能实现的功能,基本就是主表与副表之间各个字段的关联问题,实现多表关联查询,相对于使用原生SQL语句来说,着实是简单不少. 首先在数据表初始化的时候,用的不是传统的M('User'),在视图模型中使用的是D('UserView'),如下图: 需要主要的是几个单词的首字母大写. 之后在Lib/Model目录中新建名为XXXViewModel.class.php(XXX为任意控制

SQL的case when then else end语句的用法

SELECT a.managecom, a.subtype, count(*) loadsucc, sum(case when a.state in ('4', '5', '6', '7', '8', '9') then 1 else 0 end) recogsucc, sum(case when a.state in ('3', '12', '13') then 1 else 0 end) recogfail, sum(case when a.state in ('1', '2') then

关于ThinkPhp中getField方法存在的问题

在ThinkPhp中我们可以通过以下方式获取数据库数据 query:直接执行SQL查询操作 find:查询单选数据集 getField查询字段值 select:查询数据集 其他...... 但今天使用getField方法时查询某些字段时发现返回的结果却是Array类型(正常情况下是数据库中该字段对应的类型) 经过反复测试后又看了ThinkPhp的源码才发现原来getField的第一个参数中如果有字符","那么ThinkPhp会认为你查询的是多个字段,因此返回的结果就是Array类型 而

thinkphp中的exp查询

今天遇到一个问题,就是在vendor表中查询出vendor_id = vendor_f_id的数据,其实使用原生的sql语句是非常简单的: select * from vendor where vendor_id = vendor_f_id 但是,在thinkphp中为了代码的简洁以及通用性,不考虑使用原生的方式进行sql的查询,而是采用查询map的方式进行查询 $condition[ 'vendor_f_id' ] = 'vendor_id'; 但是,thinkphp在处理上述条件的时候,将其

thinkphp中如何是实现多表查询

多表查询经常使用到,但如何在thinkphp中实现多表查询呢,其实有三种方法. 1 2 3 4 5 6 7 8 9 10 11 12 // 1.原生查询示例: $Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.

THINKPHP 中关联查询(多表查询)

THINKPHP 中关联查询(多表查询)可以使用 table() 方法或和join方法,请看示例: 1.Table方法:定义要操作的数据表名称,可以动态改变当前操作的数据表名称,需要写数据表的全名,包含前缀,可以使用别名,例如: $Model->Table('think_user user') ->where('status>1') ->select(); $Model->table('think_blog blog,think_type type')->where('

SQL利用Case When Then多条件判断

CASE     WHEN 条件1 THEN 结果1     WHEN 条件2 THEN 结果2     WHEN 条件3 THEN 结果3     WHEN 条件4 THEN 结果4 .........     WHEN 条件N THEN 结果N     ELSE 结果X END Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN '女' ELSE