首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在"where“子句中使用多个值?

如何在"where“子句中使用多个值?
EN

Stack Overflow用户
提问于 2014-09-10 03:42:42
回答 2查看 62关注 0票数 0

我的代码和数据库如下

代码语言:javascript
复制
$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它将返回

代码语言:javascript
复制
abc@d.com
ah@cc.com

找到正确的语法:

代码语言:javascript
复制
$all=mysql_query("select * from users where id IN ('1','2','3')");
while($row = mysql_fetch_assoc($all))
{
   echo $row['name'];
}
EN

回答 2

Stack Overflow用户

发布于 2014-09-10 03:43:19

使用IN子句获取多个电子邮件的记录。

代码语言:javascript
复制
$my=mysql_query("select * from users where email IN ('$email','$email2','$email3')")
or die(mysql_error);
票数 4
EN

Stack Overflow用户

发布于 2014-09-10 04:00:44

另一个不是最优的解决方案是在"where“子句中添加几个选项。

使用更多的资源,但有时是您所需要的。

顺便说一句,我强烈建议首先将SQL放在一个变量中。

代码语言:javascript
复制
$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”运算符。

代码语言:javascript
复制
$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);

干杯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25752397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档