gpt4 book ai didi

mysql - 如何获取与值数组匹配的所有值?

转载 作者:行者123 更新时间:2023-11-29 11:03:26 28 4
gpt4 key购买 nike

我的 MySQL 查询有多个过滤器。它将根据某些过滤器从用户那里检索信息。

过滤器由用户选择,因此他们可以按多个值进行过滤。除了其中一个过滤器可以在子查询中返回多行之外,所有这些过滤器都是唯一的。

用户可以过滤的内容:

  • 按姓名
  • 按用户国籍

考虑到在这种情况下Name是唯一的,但可能有多个用户具有相同的国籍。此外,如果没有任何过滤器,查询应返回所有用户的所有 UserInfo

此外,我面临的问题是信息存储在两个不同的表中。这是结构:

UserInformation                   Users
---------------- ----------
ID ID
Name UserInfo
Nationality

所以我必须获取与相应过滤器匹配的用户的UserInfo。如果我按 Name 进行过滤,我不会遇到任何问题,因为它只能是唯一的,但如果我使用 Nationality 作为过滤器,则会出现错误。

两个表都通过 ID 连接。

我现在所做的是:

SELECT UserInfo FROM Users WHERE 
ID LIKE (SELECT ID FROM UserInformation WHERE Name='UniqueName') AND
ID LIKE (SELECT ID FROM UserInformation WHERE Nationality='Spanish')

当然,如果我尝试按Nationality 进行过滤(如果有多个值与该Nationality 匹配),我会发现存在问题,因为它们会无法使过滤器返回多个 ID

我必须注意,我无法修改表的结构,因为我没有足够的权限,我只能查阅它们。

但是,我如何检索与一个、两个或两个过滤器都不匹配的所有用户的 UserInfo (在这种情况下,它将返回所有 UserInfo 值)?

提前致谢!

最佳答案

连接表:

SELECT UserInfo FROM Users
JOIN UserInformation ON Users.ID = UserInformation.ID
WHERE Name='UniqueName'
AND Nationality='Spanish'

关于mysql - 如何获取与值数组匹配的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823579/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com