继续潜水

导航

 

需求 A 字段中 去 B字段找是否存在,B字段为,隔开,不存在找第一个赋值

SELECT
ws.sample_id ,ws.ex_warehouse_user_id,wss.test_user_id,
if(POSITION(',' IN wss.test_user_id)= 0,wss.test_user_id,LEFT(wss.test_user_id, POSITION(',' IN wss.test_user_id) - 1))
from wt_sample_split wss
LEFT JOIN wt_sample ws on wss.sample_id = ws.sample_id
LEFT JOIN wt_entrust we on we.wt_id = ws.wt_id
where we.wt_status != 99 and ws.ex_warehouse_status = 2
and find_in_set(ws.ex_warehouse_user_id,wss.test_user_id) = 0

其他可以忽略,主要解释函数的使用

POSITION(',' IN wss.test_user_id) //在一个字段中查询','的下标,类似于indexof的功能,
LEFT(wss.test_user_id, POSITION(',' IN wss.test_user_id) - 1)) //从左侧开始以下标切割值
find_in_set(ws.ex_warehouse_user_id,wss.test_user_id) = 0 // find_in_set(A,B) A在B中的第几个下标,这个 = 0 是需求找不存在的情况

 
posted on 2024-12-05 10:05  继续潜水  阅读(2)  评论(0编辑  收藏  举报