mysql显示表中添加的所有行


mysql display all rows from table that where added

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

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

ID UID文件夹名称

1-1-书籍

2-1-收据

3-空-书籍

4-空-收据

5-空-主页

6-2-收据

我想知道怎样才能排到第五排。条件是:第5行没有任何UID(为空),并且is不带UID。当我使用:

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

这将返回所有具有空userid的行。我只想要5,因为UID=1已经设置了他的文件夹"收据和书籍"。任何建议都会帮助我,我已经为此挣扎了几个小时了。感谢

将空userid行的条件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
  )