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>
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐