php - SQL 语句:根据 2 个值获取结果
问题描述
我有一个非常复杂的 SQL 语句,并想添加一个 WHERE 子句,它只选择hidden
列不为“1”的结果,但它需要与特定用户相关。
即如果在表 1hidden
中是 1 并且userid
是 1 我不想得到这个结果。但是,由于该表中没有用户 2 的记录,我希望他们看到它。
到目前为止,这是我设法完成的工作:
$where .= " AND uh.hidden IS NULL ";
但是,如果我以用户 2 的身份登录,那么我会看到与用户 1 相同的结果。
我该如何做到这一点,以便也根据用户显示结果?
SQL查询:
$pdo = new PDO('mysql:host=localhost;dbname=myDB', 'root', 'root');
$select = 'SELECT tl.id,
tl.name,
tl.locale,
ROUND(AVG(pr.rating),0) AS rating ';
$from = ' FROM theList AS tl ';
$join = ' LEFT JOIN post_rating AS pr ON tl.id = pr.postid ';
$join2 = ' LEFT JOIN user_hidden_list AS uh ON uh.est_id = tl.id ';
$opts = isset($_POST['filterOpts']) ? $_POST['filterOpts'] : [''];
$where = ' WHERE 1 = 1 ';
if (in_array("pub", $opts)) {
$where .= " AND pub = 1";
}
if (in_array("bar", $opts)) {
$where .= " AND bar = 1";
}
$where = ' WHERE uh.hidden IS NULL ';
$group = ' GROUP BY tl.id, tl.name ';
$sql = $select . $from . $join . $join2 . $where . $group;
$statement = $pdo->prepare($sql);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
echo($json);
解决方案
推荐阅读
- python - 为什么向我的类添加 __new__ 方法会使其抛出 TypeError: object.__new__ 不带参数?
- javascript - 样式化组件动态标签名称
- kibana - Timelion 中的百分位数聚合
- sql - 存储过程。检查约束是否在另一个表中使用
- python - 如果它们具有相同的父元素,则合并具有相同标签的所有元素
- ios - SciChart SCIRolloverModifier 随时可用
- validation - 验证和 DDD - kotlin 数据类
- excel - 当我收到错误 462 VBA 时,我应该如何定义一个 excel 对象?
- android - 如何在 ViewGroup Android 的右上角放置一个按钮?
- angular - Angular:管道从表行中搜索对象