2011-04-13 138 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()更灵活,并将继续与更复杂的匹配工作。

(有些人会说,正则表达式是缓慢的,但在这种情况下,因为它只是匹配固定到开始直串,这是一个非常有效的查询)