Php 如何在mysql中使用OR&和in WHERE子句

Php 如何在mysql中使用OR&和in WHERE子句,php,mysql,Php,Mysql,我是Mysql新手&有一个表,目前我正在其中获取数据 SELECT * FROM tablename WHERE name='$user' AND date='$selecteddate' 现在我想再添加一个名为status_id的列,在其中我想从中选择到值,即1或2 我试过这个问题 SELECT * FROM tablename WHERE (name='Ankit') AND (date='2015-04-23') AND (status_id='1' OR status_id='2')

我是Mysql新手&有一个表,目前我正在其中获取数据

SELECT * FROM tablename WHERE name='$user' AND date='$selecteddate'
现在我想再添加一个名为status_id的列,在其中我想从中选择到值,即1或2

我试过这个问题

 SELECT * FROM tablename WHERE (name='Ankit') AND (date='2015-04-23') AND (status_id='1' OR status_id='2')
但是没有成功


请帮助。

好吧,您只需要or子句所涉及的元素介于 括号

它们是不需要的,顺便说一句,您可以使用AND/OR的优先顺序,但我想说这是提高可读性的最佳方法

如果status_id数据类型为int,则不需要在1和2之间使用“”

SELECT * 
 FROM tablename 
WHERE name='Ankit' 
AND date='2015-04-23' 
AND (status_id=1 OR status_id=2) 
顺便说一下,在这种情况下,您可以使用in子句

AND status_id in (1, 2)

好的,您只需要or子句所涉及的元素介于 括号

它们是不需要的,顺便说一句,您可以使用AND/OR的优先顺序,但我想说这是提高可读性的最佳方法

如果status_id数据类型为int,则不需要在1和2之间使用“”

SELECT * 
 FROM tablename 
WHERE name='Ankit' 
AND date='2015-04-23' 
AND (status_id=1 OR status_id=2) 
顺便说一下,在这种情况下,您可以使用in子句

AND status_id in (1, 2)
像这样的

"SELECT * FROM tablename 
 WHERE name='Ankit' 
 AND date='2015-04-23' 
 AND (status_id='1' OR status_id='2')";
像这样的

"SELECT * FROM tablename 
 WHERE name='Ankit' 
 AND date='2015-04-23' 
 AND (status_id='1' OR status_id='2')";
尝试在中使用

尝试在中使用


它是否显示任何错误状态id列的数据类型是什么?似乎查询是可以的。你期望得到什么?我在mysql中尝试过这一点&它给出的错误为:从karmadetails中选择*,其中name='Ankit'和date='2015-04-23'和status='2'或status='1'mysql说:文档1064-你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第一行的“SELECT*FROM tablename WHERE name='Ankit'和date='2015-04-23'和st'附近使用的正确语法,如果您的第一个查询正常?在第一次查询中,$selecteddate的内容是什么?它是否显示任何错误?status\u id列的数据类型是什么?似乎查询是可以的。你期望得到什么?我在mysql中尝试过这一点&它给出的错误为:从karmadetails中选择*,其中name='Ankit'和date='2015-04-23'和status='2'或status='1'mysql说:文档1064-你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第一行的“SELECT*FROM tablename WHERE name='Ankit'和date='2015-04-23'和st'附近使用的正确语法,如果您的第一个查询正常?在第一次查询中,$selecteddate的内容是什么?