2017-07-28 93 views
1

語句我有PHP中的下列術語的查詢:減少了與多個查詢「或」 PHP

. 
. 
elseif ($row['date_starb'] == 0 AND $row['priv_handy'] AND (substr($row['priv_handy'], 0, 4) == '+420' OR substr($row['priv_handy'], 0, 4) == '+421' OR substr($row['priv_handy'], 0, 4) == '+357' OR substr($row['priv_handy'], 0, 4) == '+386')) 
. 
. 

這個查詢工作,但問題是,是否有可能更容易編寫。

任何幫助將不勝感激。

+0

這個問題不清楚,你能否請詳細解釋一下你想要什麼? –

+0

這似乎是一個PHP唯一的問題。所以請刪除mysql標籤。 –

回答

4

您可以使用in_array()來匹配字符串列表:

$haysack = ['+420','+421','+357','+386']; 
$needle = substr($row['priv_handy'], 0, 4); 

if ($row['date_starb'] == 0 AND in_array($needle,$haysack)) { 
    // ... 
} 
+0

非常感謝:) –

0

來到這裏期待這是數據庫,而不是PHP - 我不是在PHP上,但對待這個僞代碼並將其翻譯爲PHP?

我可能會寫這樣的:

AND instr('+420+421+357+386', $row['priv_handy'], 0, 4) 

本質定義在所有選項中的一個字符串,然後搜索它爲您的變量內容