摘要:一適用情況在實際應用中,可能會出現這種情況查找一個是否在某個字段存儲的字符串中,查找出一個列表。再來個例子二利用字符串字段,查找每個字符對應的相關表的數據適用情況,某個字符串由多個組成,如圖,現在想遍歷出字符串中包含的對應相關表的記錄。
一.FIND_IN_SET 適用情況:
在實際應用中,可能會出現這種情況:查找一個id是否在某個字段存儲的字符串中,查找出一個列表。如:
查找出所有含有6的記錄,就可以這樣查詢(這里用的hinkphp):
if(!empty($arr)){ //遍歷出子subid并進行處理 $length=count($arr); $str=""; for($x=0; $x<=$length-1; $x++){ $arr2[$x]=$arr[$x]["subid"]; //拼接sql語句 $str.=" or FIND_IN_SET(".$arr2[$x].",first_subject)"; //裁掉前面的空格和or $res_str=substr($str,4); } $condition["check"]=3; $condition["_string"]=$res_str; $count=M("teacher")->where($condition)->count(); $Page= new ThinkPage($count,1); $show= $Page->show(); $teacher=M("teacher")->where($condition)->limit($Page->firstRow.",".$Page->listRows)->select();
主要用到的是的是 FIND_IN_SET(a,b),其中a是字符串,b是字段。
再來個例子:if(!empty(I("request.indentity"))){ $condition["indentity"]=I("request.indentity"); } if(!empty(I("request.gender"))){ $condition["gender"]=I("request.gender"); } if(!empty(I("request.school"))){ $condition["school"]=I("request.school"); } if(!empty(I("request.subid"))){ $condition["_string"]="FIND_IN_SET(".I("request.subid").",first_subject)"; } if(!empty(I("request.teach_place"))){ $condition["_string"]="FIND_IN_SET(".I("request.teach_place").",teach_place)"; } if((!empty(I("request.teach_place")))&&(!empty(I("request.subid")))){ $condition["_string"]="FIND_IN_SET(".I("request.subid").",first_subject) and FIND_IN_SET(".I("request.teach_place").",teach_place)"; } $condition["check"]=3;二.利用字符串字段,查找每個字符對應的相關表的數據 適用情況:
,某個字符串由多個id組成,如圖,現在想遍歷出字符串中包含的id對應相關表的記錄。
舉例:這個例子中是二級遍歷,用于顯示老師列表中可教授科目的列表,要遍歷數組,一個個取出
//遍歷已選取的課程數組,需要數組的組合 二級,需要兩次遍歷 $arr_length=count($teacher); for($y=0; $y<=$arr_length-1; $y++){ $subject_str=substr($teacher[$y]["first_subject"],0,-1); //字符串轉成數組 subid的數組 $subject_arr1=explode(",",$subject_str); $length=count($subject_arr1); //for循環利用subid查到課程,從而查到課程名,進而把subid和課程名組成二維數組 for($x=0; $x<=$length-1; $x++){ //查找課程名,一行記錄的數組 $subject_arr2[$x]=M("subject")->where(array("subid"=>$subject_arr1[$x]))->find(); //課程名數組 $subject_arr3[$y][$x]["subid"]=$subject_arr2[$x]["subid"]; $subject_arr3[$y][$x]["subject"]=$subject_arr2[$x]["subject"]; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30604.html
閱讀 2745·2021-09-02 15:11
閱讀 919·2019-08-26 18:18
閱讀 1874·2019-08-26 11:57
閱讀 3331·2019-08-23 16:59
閱讀 2005·2019-08-23 16:51
閱讀 2314·2019-08-23 16:11
閱讀 3134·2019-08-23 14:58
閱讀 1116·2019-08-23 11:34