摘要:一適用情況在實際應(yīng)用中,可能會出現(xiàn)這種情況查找一個是否在某個字段存儲的字符串中,查找出一個列表。再來個例子二利用字符串字段,查找每個字符對應(yīng)的相關(guān)表的數(shù)據(jù)適用情況,某個字符串由多個組成,如圖,現(xiàn)在想遍歷出字符串中包含的對應(yīng)相關(guān)表的記錄。
一.FIND_IN_SET 適用情況:
在實際應(yīng)用中,可能會出現(xiàn)這種情況:查找一個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;二.利用字符串字段,查找每個字符對應(yīng)的相關(guān)表的數(shù)據(jù) 適用情況:
,某個字符串由多個id組成,如圖,現(xiàn)在想遍歷出字符串中包含的id對應(yīng)相關(guān)表的記錄。
舉例:這個例子中是二級遍歷,用于顯示老師列表中可教授科目的列表,要遍歷數(shù)組,一個個取出
//遍歷已選取的課程數(shù)組,需要數(shù)組的組合 二級,需要兩次遍歷 $arr_length=count($teacher); for($y=0; $y<=$arr_length-1; $y++){ $subject_str=substr($teacher[$y]["first_subject"],0,-1); //字符串轉(zhuǎn)成數(shù)組 subid的數(shù)組 $subject_arr1=explode(",",$subject_str); $length=count($subject_arr1); //for循環(huán)利用subid查到課程,從而查到課程名,進而把subid和課程名組成二維數(shù)組 for($x=0; $x<=$length-1; $x++){ //查找課程名,一行記錄的數(shù)組 $subject_arr2[$x]=M("subject")->where(array("subid"=>$subject_arr1[$x]))->find(); //課程名數(shù)組 $subject_arr3[$y][$x]["subid"]=$subject_arr2[$x]["subid"]; $subject_arr3[$y][$x]["subject"]=$subject_arr2[$x]["subject"]; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/30604.html
閱讀 2734·2021-09-02 15:11
閱讀 906·2019-08-26 18:18
閱讀 1867·2019-08-26 11:57
閱讀 3317·2019-08-23 16:59
閱讀 1994·2019-08-23 16:51
閱讀 2306·2019-08-23 16:11
閱讀 3120·2019-08-23 14:58
閱讀 1107·2019-08-23 11:34