通常我们使用自定义排序的语法是:ORDER BY FIELD(`字段名称`, 值1, 值2, 值3),但是如果我想强制值1到值3永远在前面,这个语法是满足不了的.
(1).基本的会员数据表:
id name age 1 zhang 39 2 gao 19 3 chen 21 4 lin 40 5 han 25
(2).现在的需求是age为25,21,19永远排在最前面,理想的写法是:(我以为会很理想)
SELECT * FROM member ORDER BY FIELD(age,25,21,19)
id name age 1 zhang 39 4 lin 40 5 han 25 3 chen 21 2 gao 19
虽然结果的确25,21,19是在一起排序,但是39,40却还在前面。
(3).正确的写法是:
SELECT * FROM member ORDER BY age IN(25,21,19) DESC, FIELD(age,25,21,19)
id name age 5 han 25 3 chen 21 2 gao 19 1 zhang 39 4 lin 40
一般不会遇到这么狗屎的写法,记录下来,免得有人入坑。
例如我们需要查询商品表中每个分类中商品id最大的记录,并且显示商品价格以下是表结构:id catename title &nb...
有很多集成环境安装完成之后是没有快捷方式的,例如西部数码的网站管理助手4.0,、 更或者是护卫神PHP套件都是一样的。安装完成最多给你安装一个PhPmyadmin让你管理Mysql,但是对于经常使用命令行的我们来说是非常不方面的,而且还必须安装PhPmyadmin来管理。下面就让我们自己手...
1.MyISAM 建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,.frm格式文件,存储表定义;.MYD格式文件,存储数据;MYI格式文件,存储索引;方便数据迁移,我只需将mysql安装目录下data文件中的表文件复制即可完成数据迁移,之前在搬迁多个dedecms中深有体会。 ...
_通配符只匹配单个字符。假如products表存在以下数据: 需要匹配到prod_nameprod_id prod_name JP1000 JetPack 1000 JP2000 JetPack 2000SQL语句: SE...
项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php $isExist = true; if ($isExist) { insert([ &...
【一】.介绍mysql交叉连接官方名是cross join。假设t1表2条记录,t2表3条记录,交叉连接后的结果就是t1表记录乘于t2表记录(2*3=6条记录)【二】.数据演示先展示t1表和t2表的记录:select * from t1t1id t1name...