mysql sql 联合查询,根据特定字段统计数值并统计全部的且加自定义的名字 模糊查询


联合查询 有all shop_name 和contact_name 这两个合在一块不去重

SELECT shop_name FROM customer_basic_info 
UNION all
SELECT contact_name FROM customer_contact_info   LIMIT 10

内连接 取得是2表的交集
SELECT t.name,t.name_t  FROM TABLE2 as t
 INNER JOIN
 TABLE1 as t2 on t.name=t2.name
 
 左连接
 SELECT  t.name,t.name_t, t2.`name` as t2name FROM TABLE2 as t
 left JOIN
 TABLE1 as t2 on t.name=t2.name

可以根据FIND_IN_SET ()返回的数值增加到where后,没有匹配到返回0
select 就查询为null

SELECT FIND_IN_SET('b','a,b,c,d');


SELECT FIND_IN_SET('e','a,b,c,d');

SELECT name  FROM TABLE1 where 0
SELECT name  FROM TABLE1 where 1

根据name 分组统计name 出现的次数 加上 with ROLLUP会在name字段下出现一个null 统计的数值为全部的name出现的次数
SELECT name , COUNT(*) as g  FROM TABLE2  GROUP BY name with ROLLUP
 coalesce(name,"总数") 将null改为“总数” coalesce(name,"总数") name 为空 就改为“总数”
SELECT coalesce(name,"总数") , COUNT(*) as g  FROM TABLE2  GROUP BY name with ROLLUP

模糊查询
SELECT name_t FROM TABLE2 WHERE name_t LIKE "%西%"
SELECT name_t FROM TABLE2 WHERE name_t LIKE "%西"
SELECT name_t FROM TABLE2 WHERE name_t LIKE "_西%"
SELECT name_t FROM TABLE2 WHERE name_t LIKE CONCAT("%","西","%")
SELECT name_t FROM TABLE2 WHERE name_t LIKE "西安"
UPDATE TABLE2 SET name_t ="拉拉" WHERE name_t="西安"

SELECT 'a'!='a'
SELECT 'a'<>'b'
SELECT 'a'='a'
SELECT 'a'<'b'


SELECT  3 BETWEEN 1 AND 4 
SELECT  5 BETWEEN 1 AND 4 

 

 

 

posted @ 2019-07-17 21:57  Angry-rookie  阅读(894)  评论(0)    收藏  举报