gpt4 book ai didi

mysql - 如何选择同一列中出现的相同 ID 值?

转载 作者:可可西里 更新时间:2023-11-01 07:39:09 26 4
gpt4 key购买 nike

我在 MySQL 中有一个表 names,其中包含以下列 ID, type, row, value

复合主键是ID, type, row

此表的作用是将指定人员的所有姓名和职业保存在多行中——每行一个数据。

例如:在西类牙,人们通常有两个名字和两个姓氏,例如 José Anastacio Rojas Laguna

在德国,有很多人只有一个名字但有两个姓氏。甚至职业广泛的人,比如在大学教书,同时在医院当医生。在这种情况下,在德国,人们会有尾随 Prof. Dr. 在他们的名字中。例如:Prof. José Anastacio Rojas Laguna 博士

在这种情况下,我会像这样将所有这些信息存储在表中:

 ID | type | row | value
1 | 0 | 1 | Prof.
1 | 0 | 2 | Dr.
1 | 1 | 1 | José
1 | 1 | 2 | Anastacio
1 | 2 | 1 | Rojas
1 | 2 | 2 | Laguna

ID 是给一个人的。表中的每个人都有一个唯一的ID,甚至一个人也可以通过他的ID 来识别。 type 定义名称的类型。 0 表示职业,1 表示名字,2 表示姓氏。 row 定义名称中的位置。 1 表示第一个名字,2 表示第二个名字,3 表示第三个名字,等等...职业和姓氏相同。

现在我想知道,我如何通过传递那个人的一些名字来选择指定人的ID?如何通过仅提供几个值来确定 ID,这些值都出现在(或具有)相同的 ID 中?

最佳答案

这将返回名称为 José Laguna 且 ID 相同的用户:

select t1.id, t1.name, t2.name
from yourTable t1
join (select * from yourTable
where name = 'Laguna') t2
on t1.id = t2.id
where t1.name = 'José'

关于mysql - 如何选择同一列中出现的相同 ID 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003761/

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