-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