$cities = "Amsterdam|Rotterdam|Den Haag"
$results = mysql_query("SELECT * FROM messages WHERE content REGEXP '$cities'");
上述代碼很好用,但如果$cities
爲空,則不會選擇任何內容。如果$cities
沒有任何值,我想選擇所有行。我怎樣才能做到這一點?謝謝!
$cities = "Amsterdam|Rotterdam|Den Haag"
$results = mysql_query("SELECT * FROM messages WHERE content REGEXP '$cities'");
上述代碼很好用,但如果$cities
爲空,則不會選擇任何內容。如果$cities
沒有任何值,我想選擇所有行。我怎樣才能做到這一點?謝謝!
您需要在php中使用條件語句,當$cities
變量爲空時,將刪除where子句。或者,你可以使用正則表達式匹配所有類似/^/
的正則表達式,但並不特別優雅。
您應該檢查$城市是否爲空。如果是,你可以將其替換爲*(匹配所有),或從查詢中刪除from子句(會提高性能)
$results = mysql_query("SELECT * FROM messages".
(empty($cities)? "":" WHERE content REGEXP '$cities'"));
或者可能
$results = mysql_query("SELECT * FROM messages WHERE '$cities' = '' OR content REGEXP '$cities'");
權,如果其他會做: P我在想什麼?謝謝! – 2011-03-17 15:37:03