首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IF语句中使用IN参数?

问在IF语句中使用IN参数?
EN

Stack Overflow用户
提问于 2017-06-27 21:17:09
回答 1查看 30关注 0票数 0

我已经尝试在Select语句上使用IN参数,如

代码语言:javascript
复制
$sql = "SELECT * FROM msgs WHERE user1 IN ('$var1','$var2') AND user2 IN ('$var1','$var2')";

这是否适用于IF语句,如

代码语言:javascript
复制
if(user1 IN ('$var1','$var2') AND user2 IN ('$var1','$var2')){

如果没有,在if语句中是否有实现类似的目标的替代方法?

更新

msg表看起来有点像这样:

代码语言:javascript
复制
accid  |  user1  |  user2  |  message  |
1         mark      edward    asasdsadsad
2         edward    mark      asdaqwdksjadhkq
3         mark      sherlock   sadasdadsad 

我想做一个IF STATEMENT来识别user1是否是mark/edward AND user2是mark/edward,这样我就可以确认这两个人已经来回发送了消息。通常,我可以通过IN使用SELECT,但在这种情况下,出于某些原因,我必须真正使用IF语句。有这样的事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-27 21:39:31

IN操作符是一个标准的SQL操作符;这在SQL语句中是有效的。

但这不是PHP操作符。不,PHP if语句是不正确的。PHP比较操作符记录在这里:

http://php.net/manual/en/language.operators.comparison.php

user1引用的内容一点也不清楚。如果这是一个变量名,它应该前面有一个美元符号。

与PHP中的SQL表达式等价的内容如下:

代码语言:javascript
复制
if( ( $user1 == $var1 or $user1 == $var2) and ( $user2 == $var1 OR $user2 == $var2 ) ) {

注意:默认情况下,在MySQL中,字符串比较不区分大小写。(这确实取决于表达式的排序。)如果我们比较字符串,为了在PHP中获得不区分大小写的比较,我们可以使用strcasecmp函数代替==比较运算符。在此记录如下:

http://php.net/manual/en/function.strcasecmp.php

正如u_mulder在一条注释中所建议的那样,如果我们可以对字符串进行区分大小写的比较,并且如果我们将$var1和$var2放入一个数组中,那么我们可以使用in_array函数,如本文所述:

http://php.net/manual/en/function.in-array.php

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

https://stackoverflow.com/questions/44790068

复制
相关文章

相似问题

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