我不确定是否以最佳方式进行此操作,但是我想做的是在mysql select查询中为IN子句使用两个php变量。

"select * from `user` where '$phpvar1' IN ('$phpvar2')"


通常,我会在$ ccvar表中使用列名来代替$ phpvar1,它可以正常工作,但是就我而言,现在我需要将$ phpvar1变量用作此特定选择查询中的临时列。由于$ phpvar1在每种情况下都是动态的,因此我不想存储它。我能做什么?谢谢!

编辑:澄清一下,user不是表中的一列,但我希望它仅作为此查询的一个。在此查询中,我要$phpvar1等于例如:“ cat”,其中“ cat”是将在列中找到的数据,然后在IN中使用此数据(“ cat”)子句以查看$phpvar1是否包含“ cat”

基本上我想要它是这样的:

SELECT * from `users` where 'mouse' IN ('cat', 'dog') and `userID` = '1'


返回的行应具有userID = 1并满足IN子句,因为'mouse'不在('cat,'dog')中,因此在这种情况下将不返回任何行。

最佳答案

将查询重写为:

"SELECT * FROM `users` WHERE '$phpvar1' IN ('".implode("', '", $phpvar2)."') and `userID` = '1'"


假设$phpvar2是包含要检查的值的数组。

10-08 15:02