아래 코드를 작성하는 좀 더 간결한 방법이 있습니까?SQL 쿼리 난이도
$fac_array=array();
for ($i=1;$i<=9;$i++){
array_push($fac_array, "Facility$i in (\$inlist)");
}
$facility_condition = implode(" OR ",$fac_array);
$full_query = "SELECT * FROM rooms WHERE (".$facility_condition.") AND....";
을하지만 실제로는, 당신이 보여주는 것과 같은 쿼리 문제는 대한되지 않습니다 :이 소형화를 위해
$myQuery = "
SELECT * FROM `rooms`
WHERE (
`Facility1` IN ($inList)
OR `Facility2` IN ($inList)
OR `Facility3` IN ($inList)
OR `Facility4` IN ($inList)
OR `Facility5` IN ($inList)
OR `Facility6` IN ($inList)
OR `Facility7` IN ($inList)
OR `Facility8` IN ($inList)
OR `Facility9` IN ($inList)
) AND `Location` LIKE '".$Location."%'
AND `RoomType` LIKE '".$RoomType."%'
ORDER BY CONVERT(`Capacity`, SIGNED)
";
'시설'열이 9 개입니까? 왜? –
죄송합니다. 데이터베이스에있어 죄송합니다. – methuselah
확실한 대답은 Room_id와 시설을 연결하는 시설 테이블을 만들어 정상화하는 것입니다. –