【问题标题】:retrieve multiple columns from one row从一行中检索多列
【发布时间】:2011-12-29 23:35:49
【问题描述】:

我有一个表(实际的列名)

id | name | image1  | image2  | image3  | image4  | image5  | image6  | image7 etc
2    joe    1.jpg     2.jpg     3.jpg   etc

我只需要选择 image(x) 列和名称中的条目(还有其他列名,但我不想要它们),这样我就可以显示

例如:

select name, image(x) from table where id=2

这应该会产生一个数组,这样我就可以遍历循环并最终得到

name
1.jpg
2.jpg
3.jpg

等等,然后我可以回显出来吗? - 这必须是一个非常标准(ish)类型的查询?

我假设我必须用 image[0] 或循环中的东西来分配图像?

【问题讨论】:

标签: mysql


【解决方案1】:

这不是我构建此表的方式。您应该只使用 id | name | image 并为每个名称有多个记录。然后你可以做一个

SELECT image FROM table WHERE name = 'joe'

通过这种方式,您可以轻松地撤回并构建一个您想要的数组,而无需使用笨拙的 (x) 东西。

【讨论】:

  • 如果是这样,我宁愿使用 3 或 2 个表:user(id,name)、imageUser(user_id,image) 以及是否有图像信息 - 图像表。
  • 这取决于系统的复杂程度。规范化很好,但如果这是数据库中唯一存在的表,则 IMO 不需要它。
  • 恐怕我没有选择表格的结构 - 这就是我被赋予的工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
相关资源
最近更新 更多