2011-04-13 107 views
1

如何比較if if else語句。在mysql查詢我可以使用LIKE %聲明。
我想比較字符串結果與PHP。 即:臨郯3mins,臨郯6分鐘,臨郯9minsphp比較字符串結果

在MySQL

$db->query("SELECT * FROM treat WHERE tanning LIKE 'Pro Tan%'"); 

在PHP中:

if($tanning == 'Pro Tan') : 
    echo 'xxx'; 
else : 
    echo 'zzz'; 
endif 
// output zzz 

回答

3

根據您想要進行比較的複雜程度,您可以使用各種不同的比較函數。專門找到與「臨郯」開頭的字符串,你可以這樣做:

if (strpos($tanning, 'Pro Tan') === 0) 
    echo 'xxx'; 

注意三倍===,如果strpos回報false,,在所有相同的,因爲沒有爲返回0

2

假設的結果開始的值,你可以使用strncmp

$foo = 'Pro Tan 6mins'; 
if (strncmp($foo,'Pro Tan', 7) === 0) 
    echo 'match'; 

對於不區分大小寫的情況,您也可以使用strncasecmp

1

您在尋找strstr() function in PHP,它允許您在一個字符串中搜索字符串。

if(strstr($tanning, 'Pro Tan')): 
    echo 'xxx'; 
else : 
    echo 'zzz'; 
endif; 
+0

也許吧,但在SQL實例不會在任何位置匹配在字符串中,它在開始時特別匹配。 – VoteyDisciple 2011-04-13 13:44:37

+0

是的。我的方法更貪婪! – Treffynnon 2011-04-13 13:46:26

0
if(preg_match("/^Pro Tan/",$foo)) {....} 

給出還將致力於其他的答案,不過正則表達式使用preg_match()更靈活,並將繼續與更復雜的匹配工作。

(有些人會說,正則表達式是緩慢的,但在這種情況下,因爲它只是匹配固定到開始直串,這是一個非常有效的查詢)