我有一个 SQL 语句:
$sql = "SELECT * FROM user_events WHERE userID =" . $uid . " OR groupID = (IN ($gId) WHERE userID IS NULL) ORDER BY timestamp DESC";
打印时看起来像这样:
SELECT * FROM user_events WHERE userID = 34 OR groupID =(IN (44,45) WHERE uID IS NULL) ORDER BY timestamp DESC
我想做的是从数据库中选择 userId
匹配特定变量或 groupID
匹配 CSV 变量的任何行,其中 userID
为 NULL
。
任何人都可以解释我在这里做错了什么吗?我完全卡住了!
最佳答案
IN
是一个运算符,而不是...那个。您还需要 AND
,而不是 WHERE
。
$sql = "SELECT * FROM user_events
WHERE userID = $uid
OR groupID IN ($gId) AND userID IS NULL
ORDER BY timestamp DESC";
关于php - 使用 IN 通过数组搜索数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12180540/