如何在 JOINED 表中使用 FIND_IN_SET?

2023-12-10

我有 2 张桌子:

  • user:注册献血者的姓名及其血型。
  • blood:包含血型和血液相容性。例如:血液为5(A-)可以接受5(A-)和6(O-)的献血。

我必须建立一个搜索表单来检索潜在的献血者。该表格允许用户搜索特定血型的捐献者。如果我搜索血型 5 (A-),查询应返回具有 5 (A-) 和 6 (O-) 血型的所有用户,并且结果列表应显示每个用户的姓名和血型。

我尝试过以下方法:

SELECT user.name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE user.id_blood = 5

这只会带来具有搜索到的确切血型的其他用户,而不是所有兼容的血型。

然后,我尝试了另一个查询。这将搜索所有兼容的血型,但结果也会按血型过滤(还应显示血型 6 记录,因为receive血液 id 5 列包含5,6.)

SELECT user.name AS name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE FIND_IN_SET(5, blood.receive)

...但由于某种原因它没有显示正确的行。我看到一些 A+、AB+、A- 记录,应该只有 A- 和 O- 记录。

这是表的结构jsfiddle.


你需要把find_in_set() in the ON clause:

SELECT u.name AS name, b.name AS blood
FROM user u JOIN
     blood b
     ON FIND_IN_SET(u.id_blood, b.receive) > 0;

但是,您确实应该有一个单独的表,其中每种血型和可以接收的每种类型占一行。这被称为连接表。用逗号分隔的字符串存储列表并不是 SQL 的处理方式:表才是。

EDIT:

像这样:

SELECT u.name AS name, b.name AS blood
FROM user u JOIN
     blood b
     ON FIND_IN_SET(u.id_blood, b.receive) > 0
WHERE u.id_blood = 5;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JOINED 表中使用 FIND_IN_SET? 的相关文章

  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • 查询交叉表视图

    我在 PostgreSQL 中有一个表 如下所示 Item1 Item2 Item3 Item4 Value1 Value2 Value3 Value4 我想要一个查询 该查询将显示如下表 ItemHead ValueHead Item1
  • 增量SQL查询

    我的应用程序有一组固定的 SQL 查询 这些查询以轮询模式运行 每 10 秒一次 由于数据库的大小 gt 100 GB 和设计 超级规范化 我遇到了性能问题 每当数据库上发生更改查询结果的 CRUD 事件时 是否可以对给定查询进行增量更改
  • MySQL 全文搜索之谜

    我们的网站上有一个使用 MySQL 全文搜索的简单搜索 但由于某种原因 它似乎没有返回正确的结果 我不知道这是否是 Amazon RDS 我们的数据库服务器所在的位置 或我们请求的查询的某种问题 这是数据库表的结构 CREATE TABLE
  • SQL Server:复制表中的列

    将表中的列中的所有值复制到同一表中的另一列的最简单方法是什么 使用单个语句 如果列具有相同的数据类型 UPDATE
  • 解析错误:语法错误,意外的“”(T_ENCAPSED_AND_WHITESPACE)[重复]

    这个问题在这里已经有答案了 完整错误 解析错误 语法错误 意外的 T ENCAPSED AND WHITESPACE 需要标识符 T STRING 或 变量 T VARIABLE 或数字 T NUM STRING 它说错误出现在第 12 行
  • MySQL:记录之间的平均间隔

    假设这张表 id date 1 2010 12 12 2 2010 12 13 3 2010 12 18 4 2010 12 22 5 2010 12 23 如何仅使用 MySQL 查询找到这些日期之间的平均间隔 例如 此表上的计算将是 2
  • 如何在可能为空值的字段上创建唯一索引(Oracle 11g)?

    这是包含 3 列的示例表 ID UNIQUE VALUE UNIQUE GROUP ID 我希望可以允许以下记录 1 NULL NULL 2 NULL NULL or 3 NULL 7 4 123 7 or 注意 此条件不允许unique
  • Sybase 中神秘的“时间戳”数据类型是什么?

    我最近在工作中发现 Sybase 数据库中的一个表使用 时间戳 类型的列 如果我使用这种神秘的时间戳数据类型创建一个表 如下所示 create table dropme foo timestamp roo int null insert i
  • docker-compose mysql 容器拒绝访问 wordpress 容器

    我遇到 mysql 5 7 容器拒绝访问 wordpress 容器的问题 我正在使用 docker compose 并且在 Mac OSX 上运行 docker Docker 应该是可用的最新版本 这是我的 docker compose y
  • 为什么不能将 MYSQL 函数传递到准备好的 PDO 语句中?

    在我看来 以下脚本应该有效 stmt db gt prepare UPDATE table SET status date modified stmt gt execute array 1 NOW 但经过时NOW 进入准备好的声明中 什么也
  • django - 设置中带有数据库 url 的 MySQL 严格模式

    我在设置中使用数据库 URL 字符串 例如 DATABASES default mysql root localhost 3306 mydb 当我迁移时 我收到此警告 MySQL Strict Mode is not set for dat
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • 查询从 Teradata 时间戳返回特定日期(6)

    我如何从 teradata timestamp 6 字段中搜索特定日期 例如 2013 10 22 sel from table A where date 2013 10 22 我尝试了上面的查询 该查询抛出错误 请帮忙 你可以这样尝试 s
  • 如何使用 WHERE x IN 子句编写PreparedStatement 的SQL?

    我有一个如下所示的查询 SELECT last name first name middle initial FROM names WHERE last name IN smith jones brown 我需要能够对 IN 子句中的列表进
  • 如何删除非空约束?

    假设创建了一个表 如下所示 create table testTable colA int not null 您将如何删除非空约束 我正在寻找类似的东西 ALTER TABLE testTable ALTER COLUMN colA DRO
  • SQLAlchemy+pymysql 错误:sqlalchemy.util.queue.Empty

    尝试使用 Eclispse 在 Ubuntu 上运行 Python 2 SQLAlchemy 0 8 和 MySQL5 2 但我不断收到以下错误 我使用 pymysql 实际上是 pymysql3 引擎 模块监视器 from sqlalch
  • mysql计算唯一行值

    TABLE quotation id clientid 1 25 2 25 3 25 4 25 5 26 如何查询有多少个不同的客户端TABLE quotation 我不希望重复的条目被计算多次 我需要的答案是2 在 1 行中 因为唯一的非
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null

随机推荐

  • 解决防伪令牌问题

    我有一个表单帖子始终给我一个防伪令牌错误 这是我的表格 using Html BeginForm Html AntiForgeryToken Html EditorFor m gt m Email Html EditorFor m gt m
  • Python SQLite3 获取原始数据?

    我对这段代码有疑问 cur execute SELECT Balance FROM accounts print cur fetchone 输出 0 而不是我想要的0 任何人都可以帮助修复错误吗 很感谢任何形式的帮助 fetchone 将返
  • 取消跟踪文件并 gitignore 它,但拉取时不要在服务器上删除它

    我创建了一个项目并跟踪配置文件 现在我想将它们从跟踪和存储库中删除 所以我把它们放在 gitignore 中 然后我做了git rm cached与这些文件 我提交了它 但现在如果我拉出这个分支会发生什么 它会在远程删除服务器上的所有这些文
  • 在 Xamarin 中使用 ZeroMQ

    我有一个由服务器和客户端组成的应用程序 服务器是 C C 应用程序 客户端是面向 Windows Android 和 iOS 的跨平台 Xamarin 应用程序 服务器部分和客户端部分使用 ZeroMQ 消息进行通信 我尝试了当前的 C 实
  • 在 TypeScript 中返回新的自身等效项以进行类继承

    我有一个基类Collection它提供了基本的数组功能 此类针对其他特定于领域的用例进行了扩展 当像这样的 破坏 方法filter被调用时 它应该返回一个带有过滤元素的新实例 继续使用类方法而不是仅仅取回数组 在 PHP 中你会使用retu
  • 无法从 Docker 实例连接到 MYSQL

    我是新来的Docker并拉了mysql来自码头枢纽使用以下命令 docker pull mysql 现在 开始了mysql使用以下命令实例 docker run name mysql p 3306 3306 e MYSQL ROOT PAS
  • Java中如何将函数作为参数传递? [复制]

    这个问题在这里已经有答案了 在 Java 中 如何将一个函数作为参数传递给另一个函数 Java 8 及以上版本 使用 Java 8 lambda 表达式 如果您有一个仅包含单个抽象方法 有时称为抽象方法 的类或接口SAM type 例如 p
  • 在 Heroku 上强制执行文件上传大小?

    在 Heroku 上有一个 Rails 应用程序 如果可能的话 我想限制文件上传的大小 文件被作为 StringIO 对象处理 因此文件内容将在内存中处理 无需将中间文件写入文件系统 通常 我会限制网络服务器上的上传大小 但是对于 Hero
  • 点击下载图片

    单击图片时如何实际下载图片 有某种 JavaScript 代码可以做到这一点吗 下面是我如何用纯 HTML 显示图像 a href img src myPic png border 0 a 假设 下载 的意思是 导致用户的浏览器弹出 保存或
  • 在 Visual C++ 中根据文件内容设置预处理器定义

    我的项目中有一个文件 其中包含项目版本号 我必须将此文件的内容用作我的代码中的预处理器定义 我需要的是以某种方式将文件中的值作为 D 参数传递给编译器 我尝试添加预处理器定义 VERSION Version 并在预构建步骤中设置版本环境变量
  • 数据压缩如何比索引更有效地提高搜索性能?

    对于我们的应用程序 我们保留由三个整数列 源 类型和时间 索引的大量数据 加载大量数据可能需要一些时间 我们已经实施了各种措施来减少大型查询必须搜索和加载的数据量 例如为不需要高分辨率的查询存储更大的粒度 时间 明智的 当在我们的备份存档中
  • Ajax get/posts 后 IE 不刷新

    我有一个小问题 我不知道如何处理 我写了一些 jQuery post gets 它们在 FF Opera 和 Chrome 中运行良好 但是 当从资源管理器 任何版本 运行时 请求中的更新内容不会加载到浏览器中 我使用了开发人员工具并调试了
  • sed 使用正则表达式

    所以基本上我有一个包含 1500 个名字的原始列表 每个名字都有一个 4 位数字 我有另一个文件 其中包含这 1500 个姓名中的 200 个姓名以及与其关联的新 4 位数字 我需要用这个新号码替换旧号码 我有一个文件original tx
  • 在 theano 中优化卷积时收到断言错误

    我正在尝试运行这段代码 x set np random rand 100 100 100 x T dtensor3 x inp x reshape 100 1 100 100 W stdDev np sqrt 2 3 3 2 W thean
  • 谷歌项目托管svn提交问题

    当我尝试使用 svn commit 提交代码时 它返回一个错误 svn 提交失败 详细信息如下 svn 服务器发送了意外的返回值 405方法不允许 响应 MKACTIVITY 请求 svn svn act acf5cd6f e8d7 476
  • Wix升级版本

    我正在尝试做教程 检查老歌 https www firegiant com wix tutorial upgrades and modularization checking for oldies
  • 谷歌分析 Cookie

    在我的浏览器中 如果我拒绝创建 cookie 则 cookie 会按名称 utma utmb 等创建 我认为此 cookie 用于谷歌分析 任何人都知道谷歌如何创建此 cookie 即使浏览器不支持 cookie 创建 谢谢 是的 这些是
  • 毫无例外地编写 C++ 吗?

    这个答案提到了两种处理非异常安全的 C 库 例如 Qt 的方法 将其隔离在异常安全包装器中 放弃例外并适应其风格 答案详细介绍了第一个选项 但第二个选项的后果是什么 放弃例外 当毫无例外地编写C 时 该语言的使用是如何受到限制的 例如 标准
  • Windows XP批处理文件连接

    我正在尝试完成以下荒谬的任务 我有一个文本文件 其中包含一组完全限定的文件名 我想迭代该文件并将每一行附加到一个公共变量 该变量可以传递给命令行工具 例如 该文件可能是 C dir test txt C WINDOWS test2 txt
  • 如何在 JOINED 表中使用 FIND_IN_SET?

    我有 2 张桌子 user 注册献血者的姓名及其血型 blood 包含血型和血液相容性 例如 血液为5 A 可以接受5 A 和6 O 的献血 我必须建立一个搜索表单来检索潜在的献血者 该表格允许用户搜索特定血型的捐献者 如果我搜索血型 5