【问题标题】:replace values in a column separated by comma?替换用逗号分隔的列中的值?
【发布时间】:2012-04-09 13:12:02
【问题描述】:

我有 2 张桌子。在第一个表中有 2 列 - dept_idstud_name。在stud_name 的下面一行有多个学生姓名,用","隔开。

第二张表,有 2 列 - stud_idstud_name。每行有一个stud_id 和一个stud_name

我想用第二个表的 stud_id 列替换第一个表的 stud_name 列。但是当我使用更新查询时,用逗号分隔的多个值的行没有替换。

如何做到这一点?我应该使用哪个查询来执行此操作?请帮忙。

谢谢!

【问题讨论】:

  • 您尝试了哪些查询(对具有多个逗号分隔值的行不起作用)?它是否适用于没有逗号的行?
  • 确实应该对设计数据库模式的人制定某种法律,他们对规范化一无所知 :-) 您需要返回并重新设计模式;其他一切都只是在你的粉刺上增加疣。
  • @paxdiablo MySQL 人员创建某种join_with_multivalued_field StackOverflow 的问题将减少一半。
  • 感谢您的回复。我使用了 UPDATE 查询。更新table1 p INNER JOIN table2 pp ON p.stud_name = pp.stud_name SET p.stud_name = pp.stud_id 它适用于没有逗号的行。我在 mysql 中很新。对重新设计架构感到困惑。请帮忙

标签: mysql normalization


【解决方案1】:

这里有基本的数据库结构问题。在您正确规范结构之前,您将继续在查询数据时遇到问题。你需要找到一个更像的解决方案:

第一表(部门)

  • dept_id
  • 部门名称

第二张表(学部)

  • dept_id
  • stud_id

第三桌(学生)

  • stud_id
  • stud_name

这在很大程度上取决于您拥有的数据量,对于少量数据,重新键入可能最容易,对于大量数据,您将需要寻找更自动化的解决方案。

【讨论】:

  • 不知道为什么字体这么大,如果有人可以解决请做。
  • “?”编辑窗口上方会显示编辑选项,例如标题等。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
相关资源
最近更新 更多