我不确定我是否以最好的方式使用它,但我想要做的是在mysql选择查询中为IN子句使用两个php变量。
"select * from `user` where '$phpvar1' IN ('$phpvar2')"
通常代替$ phpvar1我会在user
表中使用列名并且它工作正常,但在我的情况下,现在我需要将$ phpvar1变量用作此特定选择查询中的临时列。因为$ phpvar1在每种情况下都是动态的,所以我不想存储它。我能做什么?谢谢!
编辑:为了澄清,$phpvar1
不是表中的列,但我希望它只作为这一个查询的一个列。在这个查询中,我希望$phpvar1
等于例如:“cat”,其中“cat”是可以在列中找到的数据,然后这个数据(“cat”)将用于IN子句查看$phpvar2
是否包含“cat”
基本上我想要它做的是:
SELECT * from `users` where 'mouse' IN ('cat', 'dog') and `userID` = '1'
返回的行应该有一个userID = 1并且符合IN子句,因为'mouse'不在('cat,'dog')中,在这种情况下不会返回任何行。
答案 0 :(得分:2)
将您的查询重写为:
"SELECT * FROM `users` WHERE '$phpvar1' IN ('".implode("', '", $phpvar2)."') and `userID` = '1'"
假设$phpvar2
是包含要检查的值的数组。
答案 1 :(得分:0)
尝试
$sql = "select * from `user` where ".$phpvar1." in (".$phpvar2.")";
答案 2 :(得分:0)
你的php变量应该在select部分 从用户中选择$ phpvar,otherstuff,其中x in('$ phpvar2');