在 Mac 上, 通过 root 权限去执行命令时, 仍然提示 "Operation not permitted" ,或者去编辑文件时仍然提示 "E45: 'readonly' option is set (add ! to override)" , 这是新版本的 Mac OSX 系统增加了 SIP(System Integrity Protection) 特性导致的。SIP 特性顾名思义就是对操作系统完整性的保护。

- 阅读剩余部分 -

归去吧,归去吧,狷者狂如斯,不过浅海的鱼虾。
说好吧,就如此吧,可江湖那么大,欲往何处觅狂沙?
痴念啊,觉悟啊,缘何沙海不自拔?湖心亭千古,古人亭里咏荷花,后世多少载,只能是亭或是花?
归去吧,归去吧,江湖那么大,自在好繁华!

- 阅读剩余部分 -

简介

MySQL 服务器可以在不同的SQL模式下运行, 不同的SQL模式会影响MySQL支持的SQL语法以及它执行的数据验证检查。不同版本的MySQL默认的SQL模式也可能不同。 当前服务的SQL模式是由系统变量 sql_mode 决定的。

在客户端, 可以通过 select @@session.sql_mode 语句查看当前连接的sql_mode ,通过 select @@global.sql_mode 语句查看全局的 sql_mode。 比如:

mysql> select @@session.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@session.sql_mode                                                                                                                        |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

- 阅读剩余部分 -

准备测试用例

CREATE TABLE `tb_orders_10w` (
  `order_id` bigint(20) NOT NULL COMMENT '订单自增id',
  `order_no` bigint(20) NOT NULL COMMENT '外部订单号',
  `uid` bigint(20) NOT NULL COMMENT '所属用户id',
  `sender_name` varchar(64) DEFAULT '' COMMENT '发件人',
  `sender_mobile` varchar(20) DEFAULT NULL COMMENT '发件人手机',
  `sender_province` varchar(10) DEFAULT '' COMMENT '发件人省',
  `sender_city` varchar(20) DEFAULT '' COMMENT '发件人市',
  `sender_district` varchar(20) DEFAULT '' COMMENT '发件人区',
  `sender_address` varchar(255) DEFAULT '' COMMENT '发件人详细地址',
  `receiver_name` varchar(64) NOT NULL DEFAULT '' COMMENT '收件人名字',
  `receiver_mobile` varchar(20) DEFAULT '' COMMENT '收件人手机',
  `receiver_province` varchar(10) NOT NULL DEFAULT '' COMMENT '收件人省',
  `receiver_city` varchar(20) NOT NULL DEFAULT '' COMMENT '收件人市',
  `receiver_district` varchar(20) NOT NULL DEFAULT '' COMMENT '收件人区',
  `receiver_address` varchar(255) NOT NULL DEFAULT '' COMMENT '收件人详细地址',
  `status` tinyint(1) DEFAULT '0' COMMENT '订单状态:\r\n0未发货,1已取消,\r\n2已发货(有单号),3已完成(有单号)',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';

脚本插入10万条数据。

mysql> SELECT count(*) as cnt FROM tb_orders_10w;
+--------+
| cnt    |
+--------+
| 100000 |
+--------+
1 row in set (0.03 sec)

mysql> 

需求是要随机返回10个订单的 sender_name 。

- 阅读剩余部分 -