[英]Codeigniter where_in JSON column
我需要一個 Codeigniter 查詢來從 JSON 列 MYSQL 表中獲取結果。
示例列數據如下。
["1","2","6","4","3","5","7","9","8"]
目前我為此使用波紋管代碼,但它不起作用。
$DOCUMENTS = $this->db->select('*')->where('JSON_CONTAINS(BELONG) = '.$_POST['ID'].'')->get('SOLIDARITY_REQUESTED_FILES')->result_array();
如果您的 JSON 格式與您的數據一樣為數組,您可以將 ID 連接到逗號和引號。 然后 TRIM 方括號並通過 LIKE 語句查找。
$concat = "CONCAT(',\"',TRIM(LEADING '[' FROM TRIM(TRAILING ']' FROM BELONG)),'\",')";
$theId = ',"'.$_POST['ID'].'",';
$DOCUMENTS = $this->db->select('*')->like($concat, $theId)->get('SOLIDARITY_REQUESTED_FILES')->result_array();
希望這有幫助。
假設我正在記錄 city_id 應該在以下列表中的位置。 1,2,3,4,5,6,7,8 然后下一行你可以添加到你的代碼中
$city_id_list = "1,2,6,4,3,5,7,9,8";
$this->db->where_in('city_id', $city_id_list);
JSON_CONTAINS
函數至少需要兩個參數。 在這里查看更多詳細信息
將$_POST
數據添加到查詢中是危險的。 具有input
類的 Codeigniter 從POST
請求中獲取數據。
$id = $this->input->post('ID');
$DOCUMENTS = $this->db->select('*')->where("JSON_CONTAINS(BELONG, $id)>0")->get('SOLIDARITY_REQUESTED_FILES')->result_array();
如果您需要進一步的指導,請隨意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.