共计 1811 个字符,预计需要花费 5 分钟才能阅读完成。
行业资讯
数据库
oracle/mysql 拼接值遇到的坑及双竖线 || 和 concat 怎么使用
这篇“oracle/mysql 拼接值遇到的坑及双竖线 || 和 concat 怎么使用”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“oracle/mysql 拼接值遇到的坑及双竖线 || 和 concat 怎么使用”文章吧。
oracle mysql 拼接值遇到的坑 双竖线 || concat||
“||”在 oracle 中是拼接值,但在 mysql 中是“或”的意思。
where name like % || Tony || %
所以推荐使用 concat()
concat()
但 concat() 也有坑。
mysql 中,可以直接用 concat 拼接 3 个值,
concat( % , Tonny , % )
oracle 中,这样使用是错误的。因为 oracle 的 concat 只能拼接 2 个值,需要这样:
concat( % , concat( Tonny , %) )
Oracle 中的字段拼接 CONCAT 和 || 在 Oracle 中,字符串拼接有两种方法,分别是 CONCAT() 函数和“||”拼接 1、CONCAT() 函数拼接
缺点:只支持两个字符串的拼接,超过两个会报错(报的错好像是缺失右括号)
// 表中的两个字段拼接
select concat(t1.column_1,t1.column_2) from table t1;// 任意一个字段与任意字符串拼接 (time 是取的别名,记住:Oracle 取别名不要用 as )
select concat(时间是: ,t1.column_2) time from table t1;
select concat(t1.column_1, 单位:元) time from table t1;// 超过两个字段,会报错(下面这样写会报错)select concat(t1.column_1,t1.column_2,t1.column_3) from table t1;
在使用 CONCAT() 函数进行字符串拼接时,如果拼接的字段(字符串)中有中文,可能会导致乱码,解决方法把拼接的字段(字符串)加上 to_char() 即可:
// 如果遇到乱码,加上 to_char()
select concat(to_char(t1.column_1),to_char(t1.column_2)) time from table t1;
2、使用“||”进行字符串的拼接
使用“||”拼接,就不受限制了
// 表中两个字符串拼接,取别名为 time
select t1.column_1 || t1.column_2 time from table t1;// 表中三个字符串拼接,取别名为 time
// 这里可以使用括号将几个要拼接的字段括起来,可读性会好点,好像加不加括号都不影响
select (t1.column_1 || t1.column_2 || t1.column_3) time from table t1;
用“||”拼接的好处,在做模糊查询时,可以利用这个
// 这样可以动态进行模糊查询,field 是动态值
select t1.* from table t1 where t1.name like % || field || % // 如果对模糊查询更加细粒度,当然,也可以使用 concat() 进行模糊查询
select t1.* from table t1 where t1.name like concat(% ,field);
select t1.* from table t1 where t1.name like concat(field, %
补充:mysql 使用 concat 或 || 拼接字符串遇到的坑
业务需要,将几个字段拼接为一个字段进行查询,发现查完了全是空,后来在网上查询发现:
使用 || 或者 concat 拼接字符串,如果其中一个是 null,就变成 null
转为使用 concat_ws 可以避免
以上就是关于“oracle/mysql 拼接值遇到的坑及双竖线 || 和 concat 怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!