PHP - 在where子句中选择多个变量

时间:2015-04-12 22:31:03

标签: php mysql select

如果我发现这很难解释,请原谅我。 目前代码正在运行,但我现在想要做的就是执行相同的任务,但同时执行更多任务,例如,Task1内部的Task2。

我认为这可以通过使用' IN' SQL内部的语句。通过这样做:

$sql1 = "SELECT * FROM task where task IN ('$FirstTask', $SecondTask');"; 

我希望这会为星期一和星期二上午的任务插入正确的数据,但是当我打印$ 1时,我得到的值为0,所以我不认为这是正确的方法。 我能想到的唯一另一种方法是重复整个过程并稍微改变变量名称以与当天重合,是否有更好的方法来做到这一点?希望你能理解,如果没有,我可以添加更多信息。

编辑:如果我尝试使用:

select * from task where task IN ('$FirstTask', '$SecondTask', '$ThirdTask', '$ForthTask');"; 

这会打印出我想要的数据,但是如果其中一个任务中的值相同,则会与select混乱。 例如

mysql> select id,task from task where task IN ('Task1', 'Task2', 'Task11', 'Task12');
+-------+------------+
| am_id | am_task    |
+-------+------------+
|     1 | Task1      |
|     2 | Task2      |
|    11 | Task11     |
|    12 | Task12     |
+-------+------------+

如果我添加相同的值:

mysql> select id,task from task where task IN ('Task1', 'Task2', 'Task11', 'Task4' 'Task2');
+-------+------------+
| am_id | am_task    |
+-------+------------+
|     1 | Task1      |
|     2 | Task2      |
|    11 | Task11     |
+-------+------------+
3 rows in set (0.00 sec)

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是使用UNION,例如:

(select id,task from task where id = '12') union (select id,task from task where id='11') union (select id,task from task where id='10');

然后显示:

+-------+----------------+
| id | task              |
+-------+----------------+
|    12 | Task12         |
|    11 | Task11         |
|    10 | Task10         |
+-------+----------------+