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

上述代碼很好用,但如果$cities爲空,則不會選擇任何內容。如果$cities沒有任何值,我想選擇所有行。我怎樣才能做到這一點?謝謝!

回答

0

您需要在php中使用條件語句,當$cities變量爲空時,將刪除where子句。或者,你可以使用正則表達式匹配所有類似/^/的正則表達式,但並不特別優雅。

+0

權,如果其他會做: P我在想什麼?謝謝! – 2011-03-17 15:37:03

0

您應該檢查$城市是否爲空。如果是,你可以將其替換爲*(匹配所有),或從查詢中刪除from子句(會提高性能)

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'");