2011-03-17 5 views
0
$cities = "Amsterdam|Rotterdam|Den Haag" 
$results = mysql_query("SELECT * FROM messages WHERE content REGEXP '$cities'"); 

위의 코드는 훌륭하게 작동하지만 $cities이 비어 있으면 아무것도 선택되지 않습니다. $cities 값이없는 경우 모든 행을 선택하고 싶습니다. 어떻게하면 될까요? 감사!

답변

0

$cities 변수가 비어있을 때 where 절을 제거하는 PHP에서 조건을 사용해야합니다. 또는 /^/과 같은 모든 항목과 일치하는 정규식을 사용할 수 있지만 그다지 우아하지는 않습니다.

+0

오른쪽, 다른 경우-할 것입니다 : P 나는 무엇을 생각하고 있었느냐? 감사! –

0

$ 도시가 비어 있는지 확인해야합니다. . 당신이 그것을 대체 할 수있는 경우 * (성능을 향상시킬 것이다) (모두 일치) 또는 쿼리에서 절에서 제거

0
$results = mysql_query("SELECT * FROM messages". 
(empty($cities)? "":" WHERE content REGEXP '$cities'")); 

또는 아마

$results = mysql_query("SELECT * FROM messages WHERE '$cities' = '' OR content REGEXP '$cities'"); 
관련 문제