php - 使用 IN 通过数组搜索数据库

标签 php mysql sql

我有一个 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 变量的任何行,其中 userIDNULL

任何人都可以解释我在这里做错了什么吗?我完全卡住了!

最佳答案

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/

相关文章:

javascript - 使用 PHP include 函数将 JSON 文件添加到 JS

mysql - Mysql中具体查询

mysql - 分布式事务中的MongoDB和MySQL事务

MYSQL - 如何从两个表中查找结果?

php - 在sql中获取当前日期

php - 在 jQuery 数据表中显示数据库记录

sql - 有没有强力支持SQL数据库来持久化rabbitmq消息

php - Mysql 查询每日最高票数

php - CakePHP 上的计划任务

c# - 从 mysql 数据库将图像加载到 picturebox 时出错。空引用异常