php - mysql 显示表中添加的所有行

标签 php mysql sql

我有一个表 FOLDERS,每次通过 php 页面添加文件夹时,它都会插入到 FOLDERS 中。 每个文件夹都有这些字段:id,userid,foldername

我简化了表格以使我的问题更容易理解。

ID UID 文件夹名称

1 - 1 - 书籍

2 - 1 - 收据

3 - NULL - 书籍

4 - NULL - 收据

5 - NULL - 主页

6 - 2 - 收据

我想知道如何得到第五行结果。 条件是:第 5 行没有任何 UID(它是空的)并且没有 uid。当我使用时:

$sql="SELECT * FROM folders WHERE  userid=''";

这将返回所有具有空用户 ID 的行。结果我只想要 5,因为 UID=1 已经设置了他的文件夹 Receipts and Books。 任何建议都会帮助我已经为此苦苦挣扎了几个小时。谢谢

最佳答案

将空用户 ID 行的条件 userid IS NULLNOT IN() 子查询相结合,该子查询返回所有具有 userid< 的不同文件夹名称 在其他行。

SELECT *
FROM hpoptions
WHERE 
  userid IS NULL 
  AND foldername NOT IN (
    SELECT DISTINCT foldername FROM hpoptions WHERE userid IS NOT NULL
  )

关于php - mysql 显示表中添加的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961335/

相关文章:

php - 在提交表单时使用 jquery 发送发布数据

mysql - 从 mysql 数据库中选择一些内容并按计数(其中)排序

sql - 更新股票信息的 PostgreSQL 合并查询 - "MERGE"处或附近的语法错误

mysql - 在另一个数组中查找一个数组的值

sql - 为什么 INSERT 语句的列列表中点分隔的前缀被忽略?

php - 保护 symfony 3 中登录系统的安全

php - 检查 php imagick 中的 ghostscript 支持?

php - PDO错误: could not find driver (SQL Server connect)

php - 直接的SQL查询工作和通过PHP的SQL查询不是吗?

mysql - 与上传的数据创建多对多关系