我的代码和数据库如下
$my=mysql_query("select * from users where email='ids'")or die(mysql_error);
id___email___________pass
1 abc@d.com 123
2 xxx@x.uk 333
3 ah@cc.com 555我需要一个语法,在其中我将回显,当我将回显$rowemail它将返回
abc@d.com
ah@cc.com找到正确的语法:
$all=mysql_query("select * from users where id IN ('1','2','3')");
while($row = mysql_fetch_assoc($all))
{
echo $row['name'];
}发布于 2014-09-10 03:43:19
使用IN子句获取多个电子邮件的记录。
$my=mysql_query("select * from users where email IN ('$email','$email2','$email3')")
or die(mysql_error);发布于 2014-09-10 04:00:44
另一个不是最优的解决方案是在"where“子句中添加几个选项。
使用更多的资源,但有时是您所需要的。
顺便说一句,我强烈建议首先将SQL放在一个变量中。
$myquery = "select * from users ";
$myquery .= "where (1 = 0) "; // defaults to false
$myquery .= "or (email='$email') "; // maybe true
$myquery .= "or (email='$email2') "; // maybe true
$myquery .= "or (email='$email3') "; // maybe true
$mydataset = mysql_query($myquery) or die(mysql_error);有多个"or“表达式与"=”字符串进行比较,都是非最优的,占用的资源较多,相当于"in“运算符。
然而,有时知道或使用这个等价物是有用的。如果您不确定源字符串是否区分大小写,或者您希望修剪不需要的空格的值,也可以将"=“运算符替换为"like”运算符。
$email = trim($email);
$email2 = trim($email2);
$email3 = trim($email3);
$myquery = "select * from users ";
$myquery .= "where (1 = 0) "; // defaults to false
$myquery .= "or (email like '%$email%') "; // maybe true
$myquery .= "or (email like '%$email2%') "; // maybe true
$myquery .= "or (email like '%$email3%') "; // maybe true
$mydataset = mysql_query($myquery) or die(mysql_error);干杯。
https://stackoverflow.com/questions/25752397
复制相似问题