【问题标题】:Get IDs using Array SQL使用数组 SQL 获取 ID
【发布时间】:2018-08-12 03:49:34
【问题描述】:

我不知道如何为其创建公式,但我有一个表格用户。 Schedule_ID(都是数组值)。我想获取调度表中与 Schedule_ID 中的值匹配的所有 ID。

就像在哪里 Schedule_ID(Array(1,2,3)) = schedule.ID;

现在这就是我所拥有的:

$sql="SELECT schedule.*,user.* FROM user
LEFT JOIN schedule ON user.Schedule_ID = schedule.ID
WHERE user.Schedule_ID = schedule.ID";

【问题讨论】:

  • 你用的是什么数据库?
  • @DamianSimonPeter 我正在使用 php 和 mysql
  • 我为您留下了答案,让我知道该解决方案是否适合您。
  • @Jun 你的期望是什么,你得到了什么不受欢迎的输出?

标签: php mysql sql arrays


【解决方案1】:

如果我正确理解你的问题,我认为这个查询会做你想做的:

SELECT schedule.*, user.* FROM user
LEFT JOIN schedule ON FIND_IN_SET(schedule.ID, user.Schedule_ID)

请注意,此查询假定user 中的Schedule_ID 字段的格式为“1,2,3”或“6,8”等。

【讨论】:

  • 嗨尼克,我尝试了您的解决方案,但它不起作用.. Schedule_ID 已经有一个值,即 (1,2,3) 我需要输出与 Schedule_ID 匹配的 schedule.ID。不过谢谢你的回答
  • 值是否包含左右括号?即它是一个字符串'(1,2,3)'
  • 不。即用户 1 的 Schedule_ID = 1,2,3。那些 1,2,3 是 schedule 表中的 Schedule.ID 值。现在我想输出与 user.Schedule_ID 中的 schedule.ID 匹配的 User1 的计划。因此,如果调度表中有很多调度,则只会显示那些 schedule.ID = 1,2,3。
  • 谢谢!这解决了问题。谢谢!它现在正在工作
  • 太棒了。很高兴能帮上忙。
【解决方案2】:

SQL IN 运算符可以在这里为您提供帮助,您可能需要根据您的设置修改我的答案,但这应该可以帮助您解决问题或给您一个想法。

SELECT schedule.ID
FROM schedule
LEFT JOIN schedule 
ON user.Schedule_ID = schedule.ID
WHERE schedule.ID IN (user.Schedule_ID)

【讨论】:

  • 嗨@damian,我试过你的解决方案,但它不起作用
猜你喜欢
  • 2010-09-27
  • 2019-08-21
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多