GROUP_CONCAT INSTR函数in和find_in_setNULL与'' '' 1.GROUP_CONCAT 与wm_concat 2.数据库中,主键和索引的区别 3.mysql INSTR函数用法 4.Mysql中的in和find_in_set的区别?  5.NULL与'' ''

MySQL中函数CONCAT及GROUP_CONCAT 对应oracle中的wm_concat。

函数语法:

group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )

下面举例说明:

select id,price from goods;  

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)

select id, group_concat(price) from goods group by id;  

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

以id分组,把price字段的值在一行打印出来,分号分隔

select id,group_concat(price separator ';') from goods group by id;  

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

以id分组,把去除重复冗余的price字段的值打印在一行,逗号分隔

select id,group_concat(distinct price) from goods group by id;  

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

以id分组,把price字段的值去重打印在一行,逗号分隔,按照price倒序排列

select id,group_concat(DISTINCT price order by price desc) from goods group by id;  

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

2.数据库中,主键和索引的区别

  • 主键一定是唯一性索引,唯一性索引并不一定就是主键。
  • 一个表中可以有多个唯一性索引,但只能有一个主键。
  • 主键列不允许空值,而唯一性索引列允许空值。

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

主键、外键和索引的区别?

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键, 外键可以有重复的, 可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

PRIMARY KEY
主键约束修饰的列,非空且唯一
unique 唯一约束是指定表中的列不能重复,保证数据的唯一性。

3.mysql INSTR函数用法

mysql 进行模糊查询时,可使用内部函数 instr,替代传统的 like 方式,并且速度更快。

instr(field, str)  函数,第一个参数 field 是字段,第二个参数 str 是要查询的串,返回串 str 的位置,没找到就是0。

数据库表如下

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

3.1、执行如下sql

select * from book where   INSTR( book_name , "经" ) > 0

效果如下

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

3.2、执行如下sql

select instr(book_name, '水')  from book

效果如下

GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''
1.GROUP_CONCAT 与wm_concat
2.数据库中,主键和索引的区别
3.mysql INSTR函数用法
4.Mysql中的in和find_in_set的区别?
 5.NULL与'' ''

返回 ‘水’ 在各个 book_name 中的位置,没有则返回0

4.Mysql中的in和find_in_set的区别?

在mysql中in的使用情况如下:

select * from article where 列名 in(值1,值2,值3.....);
select * from article where 值1 in(值1,值2,值3.....);

在mysql中find_in_set的使用情况如下:

select * from article where find_in_set(值1, '值1,值2,值3.....');
select * from article where find_in_set(列名, '值1,值2,值3.....');
select * from article where find_in_set(值1, 列名);

 5.NULL与'' ''

1.

NULL:代表声明了制一个空对象,不是一个字符串,可以赋给任何对象。
空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它操作。
String s=”a”和String s=new String(“a”);是有本质上的区别的 :
(1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
(2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存

在mysql中in的使用情况如下:

select * from article where 列名 in(值1,值2,值3.....);
select * from article where 值1 in(值1,值2,值3.....);

在mysql中find_in_set的使用情况如下:

select * from article where find_in_set(值1, '值1,值2,值3.....');
select * from article where find_in_set(列名, '值1,值2,值3.....');
select * from article where find_in_set(值1, 列名);