mysql:无法正确检索所需数据

mysql:无法正确检索所需数据,mysql,Mysql,这是我的数据库: 我的目标是检索包含所有admin\u ngp的所有行,并且仅检索admin\u ngp旁边的那些yes。类似如下: 我觉得一个简单的交叉口操作就足以得到我的结果。然而,我无法得到想要的结果。我的问题是: SELECT * FROM artist_list WHERE uploaded_by = 'admin_ngp' IN (SELECT * FROM artist_list

这是我的数据库:

我的目标是检索包含所有
admin\u ngp
的所有行,并且仅检索
admin\u ngp
旁边的那些
yes
。类似如下:

我觉得一个简单的交叉口操作就足以得到我的结果。然而,我无法得到想要的结果。我的问题是:

SELECT * 
FROM artist_list 
WHERE uploaded_by = 'admin_ngp' IN (SELECT * 
                                    FROM artist_list 
                                    WHERE changed_by_admin = 'yes')

您可以在where中使用OR:

SELECT * 
FROM artist_list 
WHERE (uploaded_by = 'admin_ngp' AND name='admin_ngp' AND bio='admin_ngp') 
      OR (changed_by_admin = 'yes' AND uploaded_by = 'admin_ngp')

别想太多。我想这就是你所需要的

SELECT * 
    FROM artist_list 
    WHERE 
        uploaded_by = 'admin_ngp' and changed_by_admin = 'yes'
;
试试这个

案例1 如果您希望上传的内容为“admin\u ngp”,则“changed\u by\u admin”应为“yes”或“name and bio”应为“admin\u ngp”

SELECT * 
FROM artist_list 
WHERE Case when uploaded_by = 'admin_ngp' and changed_by_admin = 'yes'then 1 when name = 'admin_ngp' and bio = 'admin_ngp' then 1 else 0 end = 1
SELECT * 
FROM artist_list 
WHERE Case when uploaded_by = 'admin_ngp' and changed_by_admin = 'yes'then 1 when name = 'admin_ngp' then 1 when bio = 'admin_ngp' then 1 else 0 end = 1
案例2 如果您希望上传的内容为“admin\u ngp”,则“changed\u by\u admin”应为“yes”,或者姓名或个人简历应为“admin\u ngp”

SELECT * 
FROM artist_list 
WHERE Case when uploaded_by = 'admin_ngp' and changed_by_admin = 'yes'then 1 when name = 'admin_ngp' and bio = 'admin_ngp' then 1 else 0 end = 1
SELECT * 
FROM artist_list 
WHERE Case when uploaded_by = 'admin_ngp' and changed_by_admin = 'yes'then 1 when name = 'admin_ngp' then 1 when bio = 'admin_ngp' then 1 else 0 end = 1

“哪个在管理员旁边”是什么意思?你的where cluase没有任何意义sense@nacho像这样的东西,你还需要那些
名称
生物
也有“admin\u ngp”,但在
中可能有或可能没有“yes”由\u admin更改的吗。需要由管理员上传和更改。否。如果我使用OR运算,那么结果会是这样的。不需要管理员的行。现在试一试,您没有让我完成您的查询,这将导致跳过标记行,这是不可取的。嗯。。。在这种情况下,您似乎并不真正关心由\u admin更改的
值是否为yes。是否正确?您是否只需要从艺术家列表中选择*的结果,上传者='admin\u ngp'