共計 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 網 – 提供最優質的資源集合!