亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql中的find_in_set字符串查找函數(shù)解析

 更新時間:2022年08月29日 10:18:11   作者:好好生活_  
這篇文章主要介紹了mysql中的find_in_set字符串查找函數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

需求

系統(tǒng)中,不論是訂單還是退貨單,有的平臺使用需要賣家審核,有的則不需要,所以在系統(tǒng)中可以設(shè)置訂單或退貨單的流程節(jié)點。

而對于每個流程節(jié)點,客戶需求是每個節(jié)點都要根據(jù)系統(tǒng)下的員工的角色去做分發(fā),從而訂單指定到個人,而不是整個公司的員工都可以處理。

方案

對于上述場景,我實現(xiàn)的方案是在訂單表和退貨單表都增加了對應(yīng)節(jié)點待處理人字段,多個人可處理的話,則用,分隔,保存對應(yīng)員工的id集合。

所以,在查詢訂單的方法上我們也需要進行對應(yīng)的修改,每個人只能看到自己可處理的訂單。

表內(nèi)容樣例如下:

員工登錄系統(tǒng),我們可以得到其對應(yīng)的id,而我們需要將其id去對應(yīng)的字段查找,是否在業(yè)務(wù)審核,財務(wù)審核或發(fā)貨人的集合中。這時候,SQL該怎么改?

函數(shù)

在改SQL之前,我想的是,之前總結(jié)過MYSQL的很多函數(shù),而對于上面的實現(xiàn),MYSQL中肯定會有對應(yīng)的函數(shù)幫助我們實現(xiàn)。果真,被我查到了。

1. 介紹

MySQL提供了一個名為FIND_IN_SET()的內(nèi)置字符串函數(shù),允許您在逗號分隔的字符串列表中查找指定字符串的位置。

2. 語法:FIND_IN_SET(needle,haystack)

FIND_IN_SET()函數(shù)接受兩個參數(shù):

  • needle是要查找的字符串。
  • haystack是要搜索的逗號分隔的字符串列表。

FIND_IN_SET()函數(shù)根據(jù)參數(shù)的值返回一個整數(shù)或一個NULL值:

  • 如果needle或haystack為NULL,則函數(shù)返回NULL值。
  • 如果needle不在haystack中,或者haystack是空字符串,則返回零。
  • 如果needle在haystack中,則返回一個正整數(shù)。

3. 實戰(zhàn)

下面是項目中查編號為8910的員工可處理的待業(yè)務(wù)審核的訂單SQL:

SELECT
	t.id_,t.order_sn,t.create_time, t.business_employee_ids,cus.customer_title
FROM
	wms_orders t
LEFT JOIN wms_customer cus ON cus.id = t.buyer_id
WHERE
	t.order_status != 100
AND t.comp_id = 8815
AND FIND_IN_SET(
	'8910',
	t.business_employee_ids
)
AND t.order_status = 14
AND (
	t.parent_order_sn IS NULL
	OR t.parent_order_sn = ''
)
ORDER BY
	t.id_ DESC

結(jié)果如下:

上面結(jié)果截圖中,框出的三條訂單,id為6594,6523,6373是只有員工編號為8910能處理的,我們將上面的SQL員工編號改為8912,則此三條訂單應(yīng)該是不在結(jié)果范圍內(nèi)的, 從而驗證使用此函數(shù)查詢是否可行。

查詢結(jié)果如下:

結(jié)果證明查詢是沒有問題的。

插曲

前兩天,有個同事在群里發(fā)了個截圖,問了個問題,如下:

簡單描述下:

圖片地址那一列存的是我們的舊數(shù)據(jù)中心的地址,而現(xiàn)在新數(shù)據(jù)中心上線了,所以需要統(tǒng)一替換成新的地址獲取圖片。

看完后,我就想到了之前用到過MYSQL中的REPLACE()函數(shù),可以做到將字符串替換。所以,update的語句如下:

UPDATE wms_platform_wear_brand
SET brand_img = REPLACE (
	brand_img,
	"http://***/udata/interface/timer/pic/getAttachPic.do?attachId=",
	"wms/orderGoods.do?method=getAttachPic&attachId="
)

總結(jié)

MYSQL很強大,提供了很多內(nèi)置函數(shù),從而可以幫助我們很容易就得到了我們想要的結(jié)果。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 5.7.20綠色版安裝詳細圖文教程

    MySQL 5.7.20綠色版安裝詳細圖文教程

    MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle旗下產(chǎn)品。這篇文章主要介紹了MySQL 5.7.20綠色版安裝詳細圖文教程,需要的朋友可以參考下
    2017-11-11
  • mysql中IFNULL,IF,CASE的區(qū)別介紹

    mysql中IFNULL,IF,CASE的區(qū)別介紹

    本文將詳細介紹mysql中IFNULL,IF,CASE的區(qū)別,需要了解的朋友可以參考下
    2012-11-11
  • MySQL系列之九 mysql查詢緩存及索引

    MySQL系列之九 mysql查詢緩存及索引

    緩存SELECT操作或預(yù)處理查詢的結(jié)果集和SQL語句,當(dāng)有新的SELECT語句或預(yù)處理查詢語句請求,先去查詢緩存,判斷是否存在可用的記錄集,判斷標(biāo)準(zhǔn):與緩存的SQL語句,是否完全一樣,區(qū)分大小寫
    2021-07-07
  • 解析MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL

    解析MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL

    這篇文章主要介紹了MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL8.0感興趣的朋友可以了解下
    2020-08-08
  • MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯誤的原因是什么詳解

    MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯誤的原因是什么詳解

    這篇文章主要給大家介紹了關(guān)于MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯誤的原因是什么的相關(guān)資料,工作中同事遇到此異常,查找解決問題時,收集整理形成此篇文章,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • MySQL 的 20+ 條最佳實踐

    MySQL 的 20+ 條最佳實踐

    數(shù)據(jù)庫操作是當(dāng)今 Web 應(yīng)用程序中的主要瓶頸。 不僅是 DBA(數(shù)據(jù)庫管理員)需要為各種性能問題操心,程序員為做出準(zhǔn)確的結(jié)構(gòu)化表,優(yōu)化查詢性能和編寫更優(yōu)代碼,也要費盡心思。 在本文中,我列出了一些針對程序員的 MySQL 優(yōu)化技術(shù)
    2016-12-12
  • MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM

    MySQL:Unsafe statement written to the binary log using state

    這篇文章主要介紹了MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM,需要的朋友可以參考下
    2016-05-05
  • Mysql多層子查詢示例代碼(收藏夾案例)

    Mysql多層子查詢示例代碼(收藏夾案例)

    這篇文章主要介紹了Mysql多層子查詢示例代碼,以收藏夾案例給大家詳細介紹,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • MySQL 5.6 中 TIMESTAMP有那些變化

    MySQL 5.6 中 TIMESTAMP有那些變化

    前段時間,系統(tǒng)MySQL從5.5升級到了5.6,系統(tǒng)出現(xiàn)了大量的異常。大部分異常引起原因是由于TIMESTAMP的行為發(fā)生了變化,下面通過此篇文章給大家詳解MySQL 5.6 中 TIMESTAMP有那些變化,需要的朋友可以參考下
    2015-08-08
  • MySQL中主從復(fù)制重復(fù)鍵問題修復(fù)方法

    MySQL中主從復(fù)制重復(fù)鍵問題修復(fù)方法

    這篇文章主要介紹了MySQL中主從復(fù)制重復(fù)鍵問題修復(fù),需要的朋友可以參考下
    2014-12-12

最新評論