mysql
wuzuyu365
这个作者很懒,什么都没留下…
展开
-
php低内存导出mysql数据
$sql = 'select * from tpshop.tp_goods';$pdo = new \PDO('mysql:host=127.0.0.1;dbname=tpshop', 'dbuser', 'dbpwd');$pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);$rows = $pdo->query($sql);$filename = date('Ymd') . '.csv'; //设置文件名...原创 2020-10-20 15:56:43 · 142 阅读 · 0 评论 -
ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库
要在ubuntu的php上连接远程windows上的sqlserver数据库,php版本7.0不行,需要升级。1.安装php7.3$ sudo apt-get install software-properties-common$ sudo add-apt-repository ppa:ondrej/php$ sudo apt-get update$ sudo apt-g...原创 2019-10-11 22:13:32 · 2328 阅读 · 1 评论 -
mysql的一个奇葩错误
如图,查询platform_id='2x'的数据,出来的却是2的数据其实原因是这样的:platform_id是int型的,mysql在查询时把'2x'截断取整了原创 2019-01-04 15:48:27 · 210 阅读 · 0 评论 -
MySQL的text类型的最大长度
有个字段是text类型,竟然67kb的内容都保存不了,说是 Data too long 查看了一下,原来是这样的: TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB LONGTEXT 4,294,967,295 bytes ...转载 2018-11-16 18:27:55 · 43068 阅读 · 0 评论 -
MySQL的递归查询
https://blog.csdn.net/wangchaoqi1985/article/details/80772562转载 2018-11-15 16:19:28 · 1005 阅读 · 0 评论 -
MySQL联合主键自增分别产生递增id
比如员工表,要在部门内递增生成编号 ,例如 t_user表 dept user_no_name-------------------------------------- 财务部 财务部001 研发部 研发部001 财务部 财务部002 财务部 ...原创 2018-11-10 19:30:11 · 4644 阅读 · 1 评论 -
解决mysql replace uuid() 导致重复的问题
当字符集设置为utf8mb4时,执行下面SQL时,返回的多条数据中的uuid是相同的值。SELECT UPPER(REPLACE(uuid(),'-','')) FROM t_user----------------------------------------------------------------------------------UPPER(REPLACE(uuid()...原创 2018-11-09 10:03:31 · 14678 阅读 · 2 评论 -
SQL分组且取每组某个字段最大或最小值
有个表gz:要按sku分组,同时取每个sku的stock最大的那条SQL语句:SELECT * FROM (SELECT * FROM gz ORDER BY stock DESC ) a GROUP BY sku 结果:如果要最小的那条,SELECT * FROM (SELECT * FROM gz ORDER BY stock ASC) a GRO...原创 2018-09-04 17:47:01 · 20688 阅读 · 9 评论 -
mysql guid,uuid 问题
mysql里面如果插入多行,需要有一个全球唯一值,用uuid()是可以的,但uuid()产生的是36位字符串,中间带杠的,像这样:26c3a367-a41a-11e8-96ba-40a3ccb85e74如果用replace(uuid(), '-', '') , 可以去掉杠 用uuid_short() 不带杠,长度短,而且短时间情况下是连续递增的。像这样:25731042987999...原创 2018-08-20 09:43:11 · 10290 阅读 · 0 评论 -
mysql 去掉字段中的回车换行tab等特殊字符
有些用户的留言全是空格、回车换行、tab之类的东西,要去掉它们 UPDATE t1SET txt = REPLACE( REPLACE( REPLACE( REPLACE(txt, CHAR(34), ''), CHAR(13), '' ), CHAR(10), '' )...转载 2018-08-14 14:59:02 · 8187 阅读 · 1 评论 -
一个有趣的行转列、表与自己关联
在查询数据的时候,我们经常通过与多张表的关联来取得我们想要的数据。有一天我看到这样一个问题。刚开始想了好久,工作中大多用到的是一张表和其他的表进行关联查询出来自己想要的数据。想着用函数,有循环来实现,试了很多次都没有成功。最后又看了一下SQL基础,然后发现自己一叶障目了。和其他表可以关联,和自己本身也可以关联啊,仔细审题id和parentid明显就是就是让进行关联的。最后写出来,运行之后得出答案。...转载 2018-07-13 19:39:22 · 683 阅读 · 0 评论 -
ORM是否带where的save的不同
在thinkphp里面,ORM是否带where的save的不同下面的【语句1】和【语句2】有什么不同? $MO = M('orders'); $where = [];$where['order_id'] = 888;$order = $MO->where($where)->find();$new_order = [];$new_order['price'] = 99...原创 2018-06-01 20:25:43 · 431 阅读 · 0 评论 -
phpmyadmin无法登录
一个服务器上phpmyadmin无法登录,账号密码是对的,就是停留在登录界面,进不去。后来发现是磁盘满,清理磁盘后就可以登录了。不知道是否还因为另外一个原因,有个表crashed了,而且repair failed,把这个表的数据全部删除了。...原创 2019-01-20 12:19:58 · 1299 阅读 · 0 评论 -
一个sql查询慢的问题的解决
一个sql语句用了8个like '%xx%', 查询时间要5秒多,起初以为是like多的原因,用Explain运行下,发现用到了file sort。经仔细检查,发现是用到了子查询的原因。本来打算用sphinx,阿里云的开放搜索什么的,一个大牛说,数据不到1000万条都不用搜索引擎,把子查询转到left join里面就好了。...原创 2019-01-28 18:01:29 · 1996 阅读 · 0 评论 -
mysql远程端口连不上的解决
mysql创建了一个账号, 开启了允许所有IP的权限,服务器也在防火墙里开了对应的端口,在本地telnet 也可以通,但是,远程就是连接不上。原来是阿里云有个安全组规则,是在这里设置允许访问的端口段的...原创 2019-09-26 18:56:45 · 1210 阅读 · 0 评论 -
ThinkPHP3.2.3中数据库字段大小写问题
自从TP升级为3.2.3升级后,默认对数据库字段进行全部小写化。官方是这么解释的:规范起见,默认的数据库驱动类设置了 字段名强制转换为小写,如果你的数据表字段名采用大小写混合方式的话,需要在配置文件中增加如下设置: 1 'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL), ...原创 2019-08-28 18:17:48 · 1218 阅读 · 0 评论 -
mysql unsigned int 减到负值报错
Uncaught think\exception\PDOException: SQLSTATE[22003]: Numeric value out of range: 1690 BIGINT UNSIGNED value is out of range in '(`tpshop`.`tp_goods`.`store_count` - 5)'可能改为int比较好...原创 2019-06-19 11:12:50 · 1243 阅读 · 0 评论 -
TP连mysql数据库要1秒多的bug修复
配置本地开发环境的时候,发现代码莫名的变慢,调式发现是数据库查询的问题,一个查询语句差不多要1-2秒。第一感觉不应该啊,难道是新配置环境的问题吗?没办法只能调试代码。发现thinkphp里面连接数据库用的是pdo,发现New PDO()的时间差不都是1-2秒。最后发现 配置文件里面的数据库是localhost,改为127.0.0.1之后正常了.所以数据库这些的配置文件信息还是使用IP吧,使...转载 2019-05-06 18:01:21 · 360 阅读 · 0 评论 -
下单后产品数量最多只能到65535的bug修复
下单时,产品数量填写1000000,下单后,居然变成了65535,一看,数据库里产品数量字段是smallint(5)的,赶快改成int(11)原创 2019-04-28 10:55:14 · 241 阅读 · 0 评论 -
mysql查最新的明细
SELECT d.main_id,d.spu, s.mid ,b.suppliers_id, b.id, b.update_date_time FROM `tp_goods_inquiry_detail` d LEFT JOIN (SELECT main_id, MAX(id) AS MID FROM `tp_goods_inquiry_suppliers_back` WHERE ...原创 2019-04-18 17:06:25 · 325 阅读 · 0 评论 -
sphinx setGroupBy统计归类无结果的可能原因
例如以cat_id进行group $sphinx->setGroupBy('cat_id', SPH_GROUPBY_ATTR); $cat_group = $sphinx->query($sphinx_keyword, '*');结果为空,打印出错误看看:$err = $sphinx->getLastError();print_r($err);...原创 2019-04-17 14:03:05 · 426 阅读 · 0 评论 -
Mysql没有InnoDB引擎的处理
1. 在配置文件里面注释掉skip-innodb2.删文件:关闭mysql程序。打开mysql/data目录, 将图中的三个文件删掉。3.更改默认引擎打开mysql/bin目录下的my.ini,将default-strorage-engine=改为INNODB,若没有这一句则直接加入default-strorage-engine=INNODB。4.重启mysql服...原创 2019-04-21 18:09:07 · 4560 阅读 · 0 评论 -
mysql导入大批量数据出现MySQL server has gone away的解决方法
因工作需要,需要导入一个200M左右的sql到数据库用navicate导入会出现MySQL server has gone away是因为数据过大,需要调整参数:如下查看mysql max_allowed_packet的值mysql> show global variables like 'max_allowed_packet';+--------------------+-...转载 2019-02-25 10:17:57 · 522 阅读 · 0 评论 -
浅谈MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is ...转载 2019-02-16 18:39:55 · 235 阅读 · 0 评论 -
mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
https://blog.csdn.net/qq_34707744/article/details/78031413转载 2018-04-28 16:47:48 · 17088 阅读 · 0 评论 -
能不为空的字段尽量不要为空
在mysql里面,能不为空的字段尽量不要为空,可以提供默认值比如price字段, 如果定义为允许为空,则 select price*num from t_order,有可能查出来的是null,导致无法预料的错误。像这样的字段尽量提供默认值...原创 2018-04-26 23:02:03 · 1331 阅读 · 0 评论 -
java保存到数据库中文乱码,加useUnicode=true&characterEncoding=UTF-8
java保存到数据库中文乱码, 解决方法如下:我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢? 添加的作用是:指定字符的编码、解码格式。 例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加转载 2016-05-23 00:30:20 · 8862 阅读 · 0 评论 -
一个帖子无法打开的bug的排除
我们自己的网站,圈子帖子突然打不开了,在后台又是可以看到的。查SQL语句也没有问题。突然另一个新闻表也发生了同样的问题,后台可以看到这个新闻,前台就是打不开。而且很奇怪的是都是今天的打不开,昨天的就行。向领导要线上数据库的连接账号密码,领导不给,说是想想另外的方法查。后来发现是主从数据库没有同步,而数据库的错误日志也标出了,是因为主从数据库的一个表结构不同导致无法同步,锁表了。而为什么后台可以看到原创 2015-03-10 17:22:02 · 522 阅读 · 0 评论 -
表的字段取名的诀窍
主键往往取名为id,其实这样存在2个问题:(1)多表关联时,很难区分是哪个表的id,(2)SQL出错时,难查是哪个表的字段因此较好的一个方式是:每个字段都加个表名前缀如:user表:user_iduser_nameuser_sex...原创 2015-02-12 18:41:49 · 850 阅读 · 0 评论 -
thinkphp查询的getField(),select()和find()的区别
thinkphp查询时,getField(),select()和find()的区别如果搞不清楚,就会吃大亏。举例, 表t , pk_id是主键。pk_id name ------------------- 2 tom3 jim9 roseM('t')->select()的结果:Array原创 2015-02-09 15:26:22 · 3488 阅读 · 0 评论 -
web栏目置顶
用position:absolute不行,滚动网页时仍然会动,要用 position:fixed, top:0原创 2014-10-17 13:17:30 · 897 阅读 · 0 评论 -
ubuntu下mysql不能远程连接数据库
昨天我把服务器换成了ubuntu系统,在下面安装了系统自带的mysql结果我使用远程时无法远程连接mysql数据库,下面我搜索了一些解决方法,希望有需要的朋友可进入参考。MySQL远程访问的命令格式: mysql -h主机地址 -u用户名 -p用户密码示例:yanggang@host:~$ mysql -h192.168.1.11 -转载 2014-08-28 10:28:10 · 1137 阅读 · 0 评论 -
left join不能保证唯一
有2个表t1 :uid name ----1 tom2 marryt2:原创 2014-09-04 16:59:18 · 1637 阅读 · 0 评论 -
防止表单重复提交
起初是在后端检查例如姓名和手机号是否重复,如果重复就不保存,meixd原创 2014-06-13 16:32:00 · 555 阅读 · 0 评论 -
一个奇怪的MySQL查询错误
SELECT CAST(phone_number AS UNSIGNED) digit,acc_moblie_number FROM t_account WHERE acc_moblie_number = 13450419286原创 2014-05-28 15:38:12 · 873 阅读 · 0 评论 -
startos安装apache,php,mysql
sudo su输入密码yget --install apacheyget --install phpyget --install apache原创 2014-05-18 21:06:45 · 792 阅读 · 0 评论 -
为什么一些api暴露的id不是整数
一般人脸检测、识别的api,或其他一些涉及到上传文件的api,返回的文件编号都不是整数,而是一个很长的字符串,如39bzfptuNhoeN3ft5iN9Wz2fD9Fwqh7vOUFrnkg7,假如数据库里主键id是自增整形,很短,很方便,为什么对外不直接返回这个整数id呢?答案是:为了保护隐私,如果是递增整数的话,那么我只要从1开始递增就可以查看到服务器上的所有文件了。原创 2016-07-23 17:03:06 · 1681 阅读 · 0 评论 -
mysql查询包含下划线的问题
假如有个表user:id | name---------------1 | tom2 | ._%\%3 | Jack要查name包含下划线_的, 执行sql语句: select * from user where name like '%_%' ,竟然会把全部行都查出来了,要想正确地查,就要 select * from user where n...原创 2017-03-28 15:26:54 · 19802 阅读 · 3 评论 -
mysql分解字符串插入多行
商品的sku本来应该是独立的,唯一的,比如链子的sku是L001,L002,L003这样的,吊坠的是D001,D002,D003这样的,可是由于历史原因,有些产品组合起来销售,它们的sku是别的sku组合起来的,比如链子+吊坠的:L001+D002这样的,可是统计的时候又要按独立的sku,那就要把订单拆分插入表中,比如一个订单的sku是L001+D002,就要拆分为2行,每原创 2018-02-01 17:16:17 · 634 阅读 · 0 评论 -
mysql not in 不包含null
假如有表t1: id | val-------------1 | a2 | (NULL)3 | b4 | (NULL)我想找出val不是a的行,执行sql语句:SELECT * FROM t1 WHERE val NOT IN ('a')结果会是什么? id | val-------------1 | b只有一行,那...原创 2018-04-19 14:57:48 · 7527 阅读 · 0 评论