MySQL查询是:
UPDATE buddy SET buddy_positions = CONCAT('| ',
(IF(buddy1_request = 'Yes', 'buddy1_main | ','')),
(IF(buddy2_request = 'Yes','buddy2_main | ','')),
(IF(buddy3_request = 'Yes','buddy3_main | ','')),
(IF(buddy4_request = 'Yes' NULL,'buddy4_main | ','')),
(IF(buddy5_request = 'Yes','buddy5_main | ','')))
我的问题是,如果buddy1_request ='是'我希望它在一个单独的单元格(buddy1_main)中加上一些额外的位来CONCAT数据。我很难从另一列输出结果,但我可以手动输入,但无法自动找到这样做。
修改
所以我的数据看起来像这样:
| buddy1_request | buddy1_main | buddy2_request | buddy2_main | buddy_position |
| --------------- | ------------- | ---------------- | ------------- | -------------- |
| Yes | prop | no | NULL |(CONCAT HERE)|
所以我想要发生的是,如果buddy1_request说“是”'然后它在CONCAT中为buddy_position包含buddy1_main的内容,依此类推
在这个例子中,输出很简单,如果buddy2_request说"是"它会有一个像#34; winger"并且CONCAT将返回" prop"," winger"
我的问题是我当前的查询返回文字" buddy1_main"," buddy2_main"
我不知道如何引用该列并在CONCAT中提取值。
PS 我不知道这是一个糟糕的设计,它是一个玩家添加朋友的桌子,如果他们点击是和他们一起玩那个星期它会带来他们的我还需要一种方法将所有结果输出到一个表格中供俱乐部查看,这样他们就知道该玩家还有X个人可以放置X,Y和Z的位置。
然而,如果玩家2不可用但玩家4可用,则需要忽略玩家2的位置。我希望这是有道理的,这有很多原因,当你深入研究它时,它实际上是一个非常复杂的系统。我保持这种方式,所以它是模块化的,而不是线性的模型,因此我可以根据需要改变方面而不会产生影响。我不关心现阶段服务器上的内存是多么饥饿。