站長資訊網
        最全最豐富的資訊網站

        mysql中的find_in_set字符串查找函數解析

        本篇文章給大家帶來了關于mysql的相關知識,主要介紹了mysql中的find_in_set字符串查找函數,下面根據示例一起來看一下,具有很好的參考價值,希望對大家有所幫助。

        mysql中的find_in_set字符串查找函數解析

        推薦學習:mysql視頻教程

        需求

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

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

        方案

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

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

        表內容樣例如下:

        mysql中的find_in_set字符串查找函數解析

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

        函數

        在改SQL之前,我想的是,之前總結過MYSQL的很多函數,而對于上面的實現,MYSQL中肯定會有對應的函數幫助我們實現。果真,被我查到了。

        1. 介紹

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

        2. 語法:FIND_IN_SET(needle,haystack)

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

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

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

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

        3. 實戰

        下面是項目中查編號為8910的員工可處理的待業務審核的訂單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

        結果如下:

        mysql中的find_in_set字符串查找函數解析

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

        查詢結果如下:

        mysql中的find_in_set字符串查找函數解析

        結果證明查詢是沒有問題的。

        插曲

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

        mysql中的find_in_set字符串查找函數解析

        簡單描述下:

        圖片地址那一列存的是我們的舊數據中心的地址,而現在新數據中心上線了,所以需要統一替換成新的地址獲取圖片。

        看完后,我就想到了之前用到過MYSQL中的REPLACE()函數,可以做到將字符串替換。所以,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視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久国产精品久久国产精品| 99精品视频在线观看婷| 97久久超碰国产精品2021| 国产综合成人色产三级高清在线精品发布 | 精品人妻少妇一区二区| 99久久成人国产精品免费| 亚洲伊人久久精品影院| 久久996热精品xxxx| 亚洲精品在线观看视频| 久久亚洲美女精品国产精品| 四虎国产精品免费久久| 黑人无码精品又粗又大又长| 久久亚洲精品中文字幕三区| 丰满人妻熟妇乱又仑精品| 欧美精品VIDEOSSEX少妇| 亚洲国产精品成人网址天堂| 久久久精品国产亚洲成人满18免费网站| 91人妻人人澡人人爽人人精品| 国产精品专区第二| CAOPORM国产精品视频免费| 无码人妻精品一区二区三区99仓本| 色婷婷久久久SWAG精品| 欧美人与性动交α欧美精品 | 久久国产欧美日韩精品| 伊人久久无码精品中文字幕| 国产综合精品蜜芽| 国产亚洲精品看片在线观看| 亚洲精品高清国产一久久| 国产福利视精品永久免费 | 亚洲国产午夜中文字幕精品黄网站| 国精品无码A区一区二区| 国产成人无码精品一区在线观看| 久久精品国内一区二区三区 | 永久免费精品影视网站| 中文字幕无码精品三级在线电影 | 亚洲精品永久在线观看| 亚洲精品tv久久久久久久久久| 欧美成人精品欧美一级乱黄码 | 欧美精品videosse精子| 精品久久久久久国产潘金莲| 久久精品国产亚洲av影院|