如何在SQL中使用类似LIKE IN的东西?

时间:2018-07-12 11:49:46

标签: php mysql sql arrays

这是我的一部分代码

if (!isset($_GET['jenis'])) {
$jenis =  [] ;
} else {
$jenis = $_GET['jenis'];
}

$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;


<h3 class="sidebar-title">jenis</h3>
    <div class="sidebar-list">
        <ul>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="21" <?php if (in_array("21",$jenis))  { echo "checked"; } ?> > <a> Khusus Pria  </a> </li>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="22" <?php if (in_array("22",$jenis))  { echo "checked"; } ?> > <a> Khusus Wanita </a> </li>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="23" <?php if (in_array("23",$jenis))  { echo "checked"; } ?> > <a> Campuran </a> </li>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="24" <?php if (in_array("24",$jenis))  { echo "checked"; } ?> > <a> 2 Lantai </a> </li>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="25" <?php if (in_array("25",$jenis))  { echo "checked"; } ?> > <a> 3 Lantai </a> </li>
            <li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="26" <?php if (in_array("26",$jenis))  { echo "checked"; } ?> > <a> 4 Lantai atau Lebih </a> </li>
        </ul>
    </div>

在sql jenis中的存储方式如下     AA,BB,CC,DD,EE,FF

  example :
   data 1= AA,BB

   data 2= CC,DD

   data 3= AA,DD,EE,FF

   data 4= DD,EE,FF

   data 5= BB,FF

如果我单击AA,它将显示数据1作为结果。

如果我单击AA和BB,它将显示数据1,数据3和数据5。

如果我单击AA,BB和DD,它将显示数据1,数据2,数据3,数据4和数据5。

如果我单击EE数据3,则将显示数据4

我希望输出是

$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" AND jenis LIKE IN '.$jenis.' ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

尝试一下:

$sqlJenis = "('" . implode("','", $jenis) . "')";

$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" AND jenis IN '.$sqlJenis.' ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;

有关IN语句的更多信息here

注意:正如@Twinfriends所说,在将此代码用于实际生产之前,您应该了解SQL注入(安全性)。