
mysql
zpjing~.~
每天进步一点点~.~
展开
-
MySQL group_concat()拼接字符串
数据库字段TestId的值前后拼接字符串ObjectId("和"),group_concat()中传参即可。group_concat()拼接表中字段时,字段值的前后拼接字符串。原创 2023-01-31 18:30:31 · 360 阅读 · 0 评论 -
MySQL报错You can‘t specify target table ‘test‘ for update in FROM clause的解决方法
MySQL报错You can't specify target table 'test' for update in FROM clause的解决方法。原创 2022-09-28 20:49:24 · 630 阅读 · 0 评论 -
linux mysql命令行操作
1、连接mysql服务器需要确认连接的mysql的host、账号和密码,输入如下命令,enter键,即可进入mysql页面mysql -h192.168.1.12 -u用户名 -p密码2、查看所有数据库show databases;3、设定要操作的数据库use 数据库名;4、查看所有表show tables;5、查询结果,垂直竖行显示结果查询的字段太多时,查询语句结果显示杂乱查询语句结尾追加 \G,便会垂直竖行显示结果sel.原创 2022-04-21 19:00:05 · 2639 阅读 · 0 评论 -
MySQL ORDER BY 1 DESC的用法
一、问题MySQL ORDER BY 1 DESC的用法二、解决1、对表中第n个字段按照倒叙排序SELECT * FROM test ORDER BY 1 DESC;//对表中第1个字段进行倒叙排序SELECT * FROM test ORDER BY 2 DESC;//对表中第2个字段进行倒叙排序2、对表中select查询的第n个字段进行倒叙排序select t_id.test.* from test order by 1 desc;//对表中t_id字段进行倒叙排序SEL原创 2022-04-20 10:18:10 · 2280 阅读 · 0 评论 -
SELECT test_id,* FROM test报错
一、问题查询表的数据时,想要某个字段在前方显示,便于查看数据,使用如下sql时会报语法错误SELECT test_id,* FROM test;二、解决1、使用test.*SELECT test_id,test.* FROM test;2、*放在具体字段前方SELECT *,test_id FROM test;...原创 2022-04-19 19:31:15 · 804 阅读 · 1 评论 -
MySQL 导出库中各表结构字段并按照字段名称排序
一、需求需要对比两个服务器上相同库名中表结构字段的区别,两个库中相同表的表字段排序不同时,对比二、实现原创 2022-04-13 09:48:34 · 695 阅读 · 0 评论 -
mysql 按照 查询条件 in 中的顺序排序
SELECT * FROM USER WHERE user_id IN (1, 5, 8, 12, 9) ORDER BY FIELD(user_id, 1, 5, 8, 12, 9) ;原创 2022-02-22 10:26:57 · 2437 阅读 · 0 评论 -
MySQL 替换字段中的部分字符,替换为指定字符
一、需求把test表remark字段中的2020全部改为2021,比如把20201232020688改为20211232021688二、实现UPDATE `test` SET `remark`= replace(remark,'2020','2021');原创 2021-05-24 10:44:06 · 445 阅读 · 0 评论 -
MySQL报错Field ‘Content‘ doesn‘t have a default value
一、问题执行sql语句时,报错Field 'Content' doesn't have a default value;二、解决1、表结构CREATE TABLE `message` ( `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `Title` varchar(100) NOT NULL DEFAULT '' COMMENT '消息标题', `Content` text NOT NULL COMMENT '消息内容',...原创 2020-07-09 18:58:23 · 5713 阅读 · 0 评论 -
Linux MySQL的连接和基本操作
一、连接MYSQL mysql -h主机ip-u用户名 -p密码-h和主机ip之间空格可有可无,主机ip可以为本机,可以为远程的(-u用户名同),-p和密码之间不能有空格哦在安装有MySQL的Linux服务器的命令行直接输入MySQL的连接命令(前提是已经配置环境变量),执行成功后即可进入MySQL命令行页面,连接MySQL成功;mysql -h127.0.0.1 -utest...原创 2019-10-16 17:03:01 · 275 阅读 · 0 评论 -
excel文件转换为csv格式文件及乱码的处理
一、需求Navicat | SQLyog 导入excel2007文件,text类型的字段超出255个字符的内容被截取excel文件转换为csv格式文件二、实现1、通过Microsoft Excel打开excel文件,另存为csv文件;2、excel文件中有汉字时,转换为csv文件后,会出现乱码的情况,导入数据库表也是乱码的;解决乱码:通过记事本打开刚转换的csv文件...原创 2019-08-21 16:20:35 · 26537 阅读 · 4 评论 -
Navicat | SQLyog 导入excel2007文件,text类型的字段超出255个字符的内容被截取
一、问题Navicat | SQLyog,导入excel2007文件时,text类型的字段超出255个字符的内容被截取了;二、问题原因1、初步认为是mysql超出了text类型的最大长度,显然不是;2、导入时,读取excel数据被限制为255;导入时读取excel各行的各字段时,电脑系统默认利用前8行(表头的首行除外)的数据类型判断导入字段的数据格式或者数据长度;如前8行...原创 2019-08-21 15:54:37 · 2077 阅读 · 0 评论 -
MySQL报错:You can't specify target table 'user' for update in FROM clause
一、问题执行delete语句时,报错“You can't specify target table 'user' for update in FROM clause”翻译为“不能先select出同一表中的某些值,再update这个表(在同一语句中)”,即delete的目标表不能在其直接子查询中存在,目标表在子查询中的任何位置都会报错哦DELETE FROM `user` WH...原创 2019-08-05 10:24:14 · 2912 阅读 · 1 评论 -
MySQl 联合查询时过滤条件放在ON之后和放在WHERE之后的区别
一、前提 有两个表‘invite_interview’和‘report_interview’,‘invite_interview’为面试邀请表,‘report_interview’为针对面试邀请填写的面试评价表,两个表通过invite_interview_id关联; 一个面试邀请记录会对应多个面试评价表记录,面试邀请有对应的面试评价表记录且面试评级表中的projec...原创 2019-05-08 18:53:06 · 6148 阅读 · 2 评论 -
MySQL sql语句表和字段对应的大小写问题
一、遇到的问题 本地sql配置不区分大小写,线上sql配置区分大小写; select * from RESUME; 输入RESUME时是SQLyog工具自动填充,自动填充为大写(SQLyog中自动输入时,一直是大写,无法变成小写,具体原因不明,可能和关键字有关),表名其实为resume,导致在本地运行时正常,线上运行时因为大小写的原因,运行失败;...原创 2018-12-12 18:32:52 · 3993 阅读 · 0 评论 -
MySQL 查询某一字段是否为NULL
****MySQL中查询某一字段是否NULL,切记不可用 =NULL 或者 !=NULL,正确的方式是is null 或者 is not null1、查询user表中的user_mobile不是NULL的数据select * from user where user_mobile is not null;2、查询user表中的user_mobile是NULL的数据select * ...原创 2018-08-14 15:17:08 · 767 阅读 · 0 评论 -
SQL语句,更新字段,新值是旧值的一部分
一、需求更新字段,新值为旧值去掉" 00:00:00"。 修改为 二、解决update CampusCareerTalk set `TalkDate` = replace(TalkDate, ' 00:00:00', '') ;语法:update 某数据表名 set 此表某字段=REPLACE(此表某字段, ‘需要替换内容’, ‘要替换的内容’)原创 2017-09-27 18:13:57 · 3178 阅读 · 0 评论 -
MYSQL中的FROM_UNIXTIME,再也不用担心时间戳。
一 需求:数据表的“addtime”字段一般是int型,用于存放时间戳,当开发或者调试时,很多时候想要直观的查看某条记录的addtime,但是迫于是时间戳,很苦恼。二 分析解决:SELECT *,FROM_UNIXTIME(ADDTIME) AS DATE FROM `JobCandidate`;原创 2017-08-18 17:59:58 · 30157 阅读 · 0 评论 -
SQL语句,更新字段,旧值是新值的一部分
需求:更新字段,新值为旧值的前面加一个逗号;分析解决:UPDATE CareerTalk SET TalkName = CONCAT(",",TalkName) WHERE PartyId = 24497;其他$sql='select*from'.self::TABLE_SYSTEM_COMDBDEFINE.'whereDefaultComCapacity>原创 2017-08-17 19:14:05 · 4416 阅读 · 0 评论 -
php 向数据库插入特殊字符
需求:将短信黑词.txt文件中的内容插入到数据库,内容如下:header("Content-type: text/html; charset=utf-8");//获取短信黑词 使用换行符进行分割(因为在txt中是换行,不是空格)$blackWords = file_get_contents("blackWords.txt");$words = exp原创 2016-08-08 18:42:32 · 3203 阅读 · 0 评论 -
数据库设计时,varchar和int的选择
设计数据库时,电话号码和邮编等,虽然是数字形式,但是应该设计为varchar类型,如果设计为int型,插入数据库会失效,比如电话会变成另外一串数字,插入0921,结果插入为921.因为int是以数字计算,varchar是以字符串计算。原创 2015-04-01 14:24:12 · 8558 阅读 · 0 评论 -
数据库的插入和更新时,不用一一地列出字段的懒方法
通用的方法如下:增加:insert into 数据表(字段1,字段2,字段3) values(值1,值2,值3)修改:update 数据表 set 字段1=值1,字段2=值2 where id=接收到的ID参数但是当字段太多时,一一地写出来太麻烦并且容易出错,下面有一个懒方法:$formReceive = $_POST; foreach($dbFileConfig as $k原创 2015-03-31 17:36:37 · 438 阅读 · 0 评论 -
mysql 中的升序和降序 .
mySQL里desc和asc的意思 desc是descend 降序意思 asc 是ascend 升序意思 sql = "select 表内容名 from 数据库表名 Putout=true order by 读取的排序表名 asc"例如sql = "select * from user where Putout=true orde转载 2015-08-25 14:40:14 · 2098 阅读 · 0 评论 -
mysql 数据查询出排序中的最大值和最小值
两种方法:1、取排序最大值:select * from order by time DESC LIMIT 0,1;取排序最小值:select * from user order by time ASC LIMIT 0,1;2、借助PHP内置函数(看情况是否适合你的查询)取排序最大值:select MAX(字段)from user;取排序最小值:sel原创 2015-08-12 17:58:35 · 20433 阅读 · 1 评论 -
mysql 查询使用*和具体字段的问题
select * from user;一般我都会习惯使用*,但是如果你的查询表中的字段太多而且你要使用的字段不多,这种情况下使用*,只会增大服务器压力,减慢查询速度,这种情况下最好将要查询的字段一一列出,要养成习惯哦。原创 2015-08-12 18:02:02 · 1314 阅读 · 0 评论 -
IN和FIND_IN
前段时间项目中使用到Mysql的FIND_IN_SET函数,感觉挺好用的。过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会在下面分析到!弄个测试表来说说两者的区别,测试数据直接在问答区copy一份,能说明问题就行,哈哈,如果侵犯您的版权还请见谅,互联网吗,就需要分享!测试代码: CREATE TABLE `test` ( `id` int(8) NOT NU转载 2015-10-19 19:08:16 · 482 阅读 · 0 评论 -
MySQL查询优化之explain的深入解析
在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。一、MySQL 查询优化器是如何工作的MySQL 查询优化器有几个目标,转载 2015-10-19 19:14:35 · 296 阅读 · 0 评论 -
mysql top
TOP 子句TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。注释:并非所有的数据库系统都支持 TOP 子句。SQL Server 的语法:SELECT TOP number|percent column_name(s)FROM table_nameMySQL 和 Oracle 中的 SQL SELECT TOP转载 2015-10-19 19:17:51 · 1409 阅读 · 0 评论 -
mysql 通配符
在搜索数据库中的数据时,您可以使用 SQL 通配符。SQL 通配符在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符转载 2015-10-19 19:18:56 · 3518 阅读 · 0 评论 -
mysql 视图
追求卓越,成功就会在不经意间追上你mysql之视图1.什么是视图?视图是由查询结果形成的一张虚拟表。2.什么时候要用到视图?如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询3.视图的创建语法:create view 视图名 as select 语句;4.使用视图有什么好处呢? ①简化查询语句 比如:有一张商品转载 2015-10-19 19:41:08 · 299 阅读 · 0 评论 -
select 动态设置某一项为默认选中
如果不特别设置,默认选中第一项;现在从数据库中动态查询数据显示,并且默认项为设置为某一项(非第一项):$sql="select * from user ";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){$name=$row[name];}原创 2015-11-06 13:35:24 · 3475 阅读 · 0 评论 -
VARCHAR(N)类型,utf8编码,则N最大值为多少,n表示什么? .
有道面试题:若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少?先明白计算的一些规则限制4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节转载 2015-10-14 10:11:13 · 769 阅读 · 0 评论 -
php把从数据库读取出来的数据存放到数组里,然后数组不能直接使用,要转为字符串
$arr2=array(); $query3 = "SELECT user_name from USER where user_priv='$USER_PRIV' "; $cursor3= mysql_query($connection,$query3); while($row3=mysql_fetch_array($cursor3)){ $arr2[]=$原创 2015-12-19 16:54:20 · 9107 阅读 · 0 评论 -
find_in_set
制造一种情景:数据库中的字段group_id,其中几条记录值为11,15,23,24和11,19,23现在要查出group_id为11的记录对应的姓名。 解决方法select user_name from user where find_in_set(11,group_id);原创 2015-12-19 16:59:32 · 318 阅读 · 0 评论 -
mysql 的 find_in_set函数使用方法
举个例子来说: 有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1,3,4的格式存储. 们我们如何用sql查找所有type中有4图文标准的文章呢?? 这就要我们的find_in_set出马的时候到了. 以下为引用的内容转载 2015-12-19 17:03:08 · 341 阅读 · 0 评论 -
拒绝偷懒!!!
$query="select * from user";$cursor=exequery($connection,$query);while($ROW=mysql_fetch_array($cursor)){ $user_id=$ROW["user_id"]; //坚决不能偷懒,复制的select, //最后只删除了$ROW=mysql_fetch_array($c原创 2016-02-19 15:47:50 · 335 阅读 · 0 评论 -
mysql中如何将查询结果的多个记录中的指定字段放到一个二维数组中,以及在in子句中使用数组
$sql0="select * from portals_channel where ch_use=1 and tid=5 and (chid39 and chid $query0=exequery($connection,$sql0);// while($row0=mysql_fetch_array($query0)){$chid0[]=$row0[chid];//将指定字段放到原创 2015-02-26 15:53:32 · 6684 阅读 · 0 评论