mysql中的find_in_set字符串查找函數(shù)如何使用

本篇內(nèi)容介紹了“MySQL中的find_in_set字符串查找函數(shù)如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

10年積累的網(wǎng)站建設、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有鐵門關免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

需求

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

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

方案

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

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

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

mysql中的find_in_set字符串查找函數(shù)如何使用

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

函數(shù)

在改SQL之前,我想的是,之前總結(jié)過MYSQL的很多函數(shù),而對于上面的實現(xiàn),MYSQL中肯定會有對應的函數(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è)務審核的訂單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é)果如下:

mysql中的find_in_set字符串查找函數(shù)如何使用

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

查詢結(jié)果如下:

mysql中的find_in_set字符串查找函數(shù)如何使用

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

插曲

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

mysql中的find_in_set字符串查找函數(shù)如何使用

簡單描述下:

圖片地址那一列存的是我們的舊數(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="
)

“mysql中的find_in_set字符串查找函數(shù)如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

文章題目:mysql中的find_in_set字符串查找函數(shù)如何使用
本文路徑:http://bm7419.com/article28/jdsdjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站設計、網(wǎng)站排名、標簽優(yōu)化、網(wǎng)站維護外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設