-1
我试图替换选择查询的结果中的列,如 This reference中所示,但与示例不同,我在表中有很多列,因此我无法指定select查询中每列的名称。替换选择查询中的特定列数据?
我尝试了一些方法来达到同样的效果,但没有一个看起来有效。
select
*, (REPLACE(REPLACE(role_id,1,"admin"),2,"moderator") AS role_id
from user;
或
Select *
from user
where role_id = (select REPLACE(role_id,1,"admin") as role_id from user;
这里,我们假设只有两个可能的值ROLE_ID然而,在某些实例化它可能得到另一个表的数据即拥有不同的ID和值相对应的不同的表他们。
那么,有没有一种方法来达到以下条件在一个查询: -
- 来代替某些字段的值,从选择查询返回的(假设多列分别写的所有列的名称不可行)
- 从单个表中不同列的不同表中获取替换值。
我需要在一个查询中实现上述条件,但更改不应该在数据库中,只有选择查询的结果需要优化。
已经提到以下但也忍不住。
我使用phpMyAdmin发动机和PHP作为实现语言。
感谢您的帮助,我试过case/when too但因为我需要从各种表中动态地获取替换数据,因此这并没有太大的帮助,实施PHP数组的问题是,由于使用结果在很多平台上,我需要优化sql查询itlself, – OshoParth
我已经根据您提供的信息回答了问题。 – e4c5
最优化的解决方案是做php数组,因为它根本不会对数据库造成任何压力。但是,如果表是索引索引的,则包含角色的表上的联接将同样有效。 – e4c5