欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql中CONCAT()函數(shù)結(jié)果為null的問題解決

 更新時間:2025年09月07日 10:01:10   作者:花花無缺  
本文主要介紹了因SQL中的CONCAT()函數(shù)導(dǎo)致的數(shù)據(jù)漏查問題,下面就拉具體介紹一下問題的原因及解決方法,感興趣的可以了解一下

背景 :發(fā)現(xiàn)數(shù)據(jù)漏更新,排查時候看代碼一直沒問題,因?yàn)榭吹皆诖a里用了 Optional.ofNullable(value).orElse(''),不該漏掉,后來發(fā)現(xiàn)在sql里面查詢的時候不是用的代碼里已拼好的字符串,而是用concat()又拼了一遍,所以其中任一字符串為null的數(shù)據(jù)都沒查到。

SQL 中使用 CONCAT(str1, str2) 時,如果 str1str2NULL 或空串('')會發(fā)生什么

1、SQL 中CONCAT()函數(shù)的行為(以 MySQL 為例)

規(guī)則總結(jié):

情況結(jié)果說明
CONCAT('hello', 'world')'helloworld'正常拼接
CONCAT('hello', '')'hello'空串不影響
CONCAT('hello', NULL)NULL只要有一個是 NULL,結(jié)果就是 NULL ?
CONCAT(NULL, 'world')NULL同上
CONCAT(NULL, NULL)NULL同上

?? 在標(biāo)準(zhǔn) SQL 和 MySQL 中,CONCAT(NULL, ...) 的結(jié)果是 NULL。

2、CONCAT()的其他相關(guān)使用場景

  • 模糊查詢
CONCAT('%', #{device}, '%')
  • 路徑匹配
--判斷某個字段是否“以 `prefix` 開頭,并且 `prefix` 后面是 `/` 或字符串結(jié)尾
REGEXP CONCAT('^', #{prefix}, '(/|$)')

3、如何避免出現(xiàn)null,導(dǎo)致漏查漏改數(shù)據(jù)

-- 1.使用 COALESCE:將 NULL 轉(zhuǎn)為空串
SELECT CONCAT(COALESCE(str1, ''), COALESCE(str2, '')) AS result
FROM your_table;

-- 2.使用 IFNULL:將 NULL 轉(zhuǎn)為空串
SELECT CONCAT(IFNULL(str1, ''), IFNULL(str2, '')) AS result
FROM your_table;

-- 3.使用`CONCAT_WS(separator, str1, str2, ...)` 表示“用分隔符拼接字符串”,會自動跳過 NULL 值。
SELECT CONCAT_WS('', 'hello', NULL, 'world') AS result; -- 'helloworld'

到此這篇關(guān)于mysql中CONCAT()函數(shù)結(jié)果為null的問題解決的文章就介紹到這了,更多相關(guān)mysql中CONCAT()結(jié)果為null內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • SQL中字符串截取函數(shù)圖文教程

    SQL中字符串截取函數(shù)圖文教程

    在SQL的實(shí)際用途中,經(jīng)常會碰到需要對查詢結(jié)果值需要做字段的一些截取,下面這篇文章主要給大家介紹了關(guān)于SQL中字符串截取函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • MySQL8.0.20壓縮版本安裝教程圖文詳解

    MySQL8.0.20壓縮版本安裝教程圖文詳解

    這篇文章主要介紹了MySQL8.0.20壓縮版本安裝教程,需本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,要的朋友可以參考下
    2020-08-08
  • Mysql占用過高CPU時的優(yōu)化手段(必看)

    Mysql占用過高CPU時的優(yōu)化手段(必看)

    下面小編就為大家?guī)硪黄狹ysql占用過高CPU時的優(yōu)化手段(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • sql中替換函數(shù)replace()用法與實(shí)例總結(jié)

    sql中替換函數(shù)replace()用法與實(shí)例總結(jié)

    這篇文章主要給大家介紹了關(guān)于sql中替換函數(shù)replace()用法與實(shí)例的相關(guān)資料,在SQL中REPLACE函數(shù)用于替換一個字符串中的一部分為另一個字符串,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • MySQL索引失效的八大常見場景及解決方法

    MySQL索引失效的八大常見場景及解決方法

    作為一名Java開發(fā)工程師,在處理高并發(fā)業(yè)務(wù)時,MySQL索引失效是導(dǎo)致系統(tǒng)性能下降的"隱形殺手",本文將結(jié)合實(shí)際案例,深度剖析索引失效的8大常見場景,并提供Java代碼層面的優(yōu)化建議,幫助開發(fā)者避開性能陷阱,需要的朋友可以參考下
    2025-05-05
  • MySQL5.5.21安裝配置教程(win7)

    MySQL5.5.21安裝配置教程(win7)

    這篇文章主要以圖文結(jié)合的方式介紹了Win7系統(tǒng)下安裝MySQL5.5.21的具體過程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 為mysql數(shù)據(jù)庫添加添加事務(wù)處理的方法

    為mysql數(shù)據(jù)庫添加添加事務(wù)處理的方法

    開始首先說明一下,mysql數(shù)據(jù)庫默認(rèn)的數(shù)據(jù)庫引擎是MyISAM,是不支持事務(wù)的,單數(shù)如果你添加了數(shù)據(jù)執(zhí)行語句是不會出錯的,單數(shù)不管用,即便是回滾事務(wù),記錄也是插入進(jìn)去了,所有首先我們要做的第一步是更改數(shù)據(jù)庫引擎
    2011-07-07
  • MySQL 字符串拆分實(shí)例(無分隔符的字符串截取)

    MySQL 字符串拆分實(shí)例(無分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分實(shí)例(無分隔符的字符串截取),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MySQL如何開啟遠(yuǎn)程連接權(quán)限

    MySQL如何開啟遠(yuǎn)程連接權(quán)限

    這篇文章主要介紹了MySQL如何開啟遠(yuǎn)程連接權(quán)限問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Mysql 5.7.18 解壓版下載安裝及啟動mysql服務(wù)的圖文詳解

    Mysql 5.7.18 解壓版下載安裝及啟動mysql服務(wù)的圖文詳解

    這篇文章主要介紹了Mysql 5.7.18 解壓版下載安裝及啟動mysql服務(wù)的圖文詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05

最新評論