mysql指令碼中如何用字串作為列名

2021-05-23 14:59:27 字數 565 閱讀 3843

在資料庫查詢中,經常會有這樣的需求:

能不能用乙個字串來動態指定乙個列,然後在where子句中進行查詢。

如果能有乙個function,比如叫getcolumn(string),那麼,寫乙個查詢可以是:

select * from table where getcolumn(string) = ***xx;

但是,查遍了mysql的相關文件,也沒有找到這麼乙個類似的function。於是只能找乙個workaround------用乙個儲存過程。

舉個例子:

表中有3個column,每個儲存乙個無符號整數,用來通過位運算來判斷是否符合某種條件。

這種設計可以用來做許可權控制、preference設定等等,每個bit用來代表乙個許可權或者一種設定,總之是乙個開關。本例中是乙個使用者許可權表。

問題:通過乙個script查詢,來找出所有使用者都有的許可權(這個許可權可能已經沒有用了,因為所有人都有的許可權)

解決方案:

注釋:31 是因為每個無符號整數只能使用31位,三個column,所以總共93。

題外話:

好久沒有更新空間了。原來的空間轉到了這裡 。

python 如何用字串中的數字排序

txt lc刷題 5 最長回文子串 day03 lc刷題 876 鍊錶的中間結點 鍊錶 day02 lc刷題 4 尋找兩個有序陣列的中位數 二分查詢 day02 lc刷題 237 刪除鍊錶中的節點 鍊錶 day01 lc刷題 206 反轉鍊錶 鍊錶 day01 lc刷題 02 兩數相加 鍊錶 day...

mysql常用字串 MYSQL常用字串函式寶典

mysql常用字串函式 想更進一步加強自己在查詢語句方面的能力,需要掌握常用函式。字串函式 1 concat s1,s2,sn 將s1,s2,sn串聯成乙個字串。exp root test 14 43 desc t1 field type null key default extra id int ...

Linux Shell 指令碼應用 字串處理

1 子串擷取操作 路徑分割 dirname 命令 basename命令 使用expr 命令 格式 expr substr var1 起始位置 擷取長度 使用 表示式 格式 2 字串替換 將var1字串中的 第乙個old 替換成new 將var1字串中所有的old替換成new 3 使用隨機字串 dev...