PHP - 在where子句中选择多个变量
问题描述:
请原谅我,如果我觉得这很难解释。 目前代码正在工作,但是现在我想要做的是执行相同的任务,但同时执行更多任务,例如,Task1内部的Task2。PHP - 在where子句中选择多个变量
我认为这将是可能的通过在SQL内使用'IN'语句。因此,通过这样做:
$sql1 = "SELECT * FROM task where task IN ('$FirstTask', $SecondTask');";
我希望这将然后插入正确的数据,周一和周二上午的任务,但是当我打印$一个I得到的值0,所以我不认为这是正确的方式去做。 我能想到的唯一方法就是重复整个过程,稍微改变变量名以适应当天,是否有更好的方法来做到这一点?希望你会明白,如果没有,我可以添加更多的信息。
编辑:如果我尝试使用:
select * from task where task IN ('$FirstTask', '$SecondTask', '$ThirdTask', '$ForthTask');";
这打印出我想要的数据,但是如果他们中的一个任务内的价值在于它与选择弄乱相同。 例如
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)
答
我发现的解决方案是通过使用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 |
+-------+----------------+
'$ tuesday_am_Task'不是'$ tuesd ay_am_task' ... –
谢谢,编辑。 – tom
你错过了一个倒置昏迷的另一件事'IN('$ monday_am_task','$ tuesday_am_Task');' – insanityCode