首页 > 解决方案 > SQL 查询 - 从以逗号分隔的一列中获取数据并按行显示

问题描述

我在获取以逗号分隔的数据时遇到问题。我想要

这是我的问题

Table
ID | TDNO | PREVIOUS_TD |
1  | 14   | 13,12,11    |
2  | 23   | 45,12       |
3  | 32   | 89          |
4  | 55   | NEW         |

我想要这样的结果。例如,当用户在 TD 中选择 14 时,结果应该是这样的:

ID | TD  |
1  | 14  |
2  | 13  |
3  | 12  |
4  | 11  |

当用户在 TD 中选择 32 时,结果应该是这样的:

ID | TD  |
1  | 32  |
2  | 89  |

当用户选择 23 时,结果应该是这样的:

ID | TD  |
1  | 23  |
2  | 45  |
3  | 12  |

如何做到这一点?

标签: mysqlsql

解决方案


为了创建您的数据库,您需要创建一个新表,其 Id 为 Td 和 tdNos 并与此有关系。例如:

Table TdNos
ID | TDNO | PREVIOUS_TD |
1  | 14   | 13,12,11    |
2  | 23   | 45,12       |
3  | 32   | 89          |
4  | 55   | NEW         |

Table TdNoHistory
TdID|Priority| PREVIOUS_TD |
1   |   1    |      13     |
1   |   2    |      12     |
1   |   3    |      11     |
2   |   1    |      45     |
2   |   2    |      12     |
3   |   1    |      89     |

对于第二个表,TdId 和 Priority 的组合是主键,它通过 TdId 列与表 TdNos 有关系


推荐阅读