MySQL 查询结果替换
1、 IF函数
IF(expr,v1,v2):如果表达式expr成立,那么返回v1,否则返回v2
示例
如果 type 等于 -1 那么返回的结果就是 0
否则 还是返回 type的数值
SELECT IF(type=-1, 0, type) as type
FROM table1;
2、 CASE语句
CASE case_value
WHEN when_value THEN
statement_list
ELSE
statement_list
END alias;
对case_value进行判断,根据case_value满足的条件返回结果,并重命名为alias。
示例
存在3种值,分别为:1、2、3。现在对table1进行查询,如果该字段值为1就变为苹果;为2就变为香蕉;为3就变为梨。
SELECT
CASE type
WHEN 1 THEN
'苹果'
WHEN 2 THEN
'香蕉'
ELSE
'梨'
END type
FROM table1;
3. replace()
替换字符串
replace(type,"aaa","bbb") as nowtype
示例
将type字段里面的 aaa 替换为 bbb
select *,replace(type,"aaa","bbb") as nowtype from table1;
4. CONCAT()
字符串拼接
CONCAT(type," ",type1,"哈哈")
示例
将 type." ".type1.“哈哈” 的形式 拼接新的字段
select *,CONCAT(type," ",type1,"哈哈") as nowtype from table1;
5. group_concat()
数据分组 并查询出分组内对应的字段
需要和 group 一起使用
否则就所有数据就会被合并成一行
和 concat() 一样可以拼接
group_concat(type1)
group_concat(type," ",type1,"哈哈")
示例
根据 type 分组 并将 获取分组后的 type1 字段
select *,group_concat(type1) as nowtype1 from table1 group by type;
group_concat(type1)
默认使用 ,拼接 type1,type1
可使用 separator 更改拼接
separator '<br>'
select *,group_concat(type1 separator '<br>' ) as nowtype1 from table1 group by type;
type1<br>type1<br>