SQL 處理序列化的方法

2021-07-13 23:01:48 字數 907 閱讀 6359

表 user 中欄位area_data 存放該使用者的省市區資訊,序列戶後字串格式如下:

a:2:

a:3:

a:2:

a:3:

反序列化後是乙個陣列,array(9=>'安徽省',46=>'蕪湖市'),其中key值是區域表id,value是區域名稱。

若現在知道某省id=25查詢該省下有多少使用者,可以使用下面的sql

-- 獲取某省下市級的**商

select * from user  where substring(area_data,8,position(';' in area_data)-8)+0=25

原理是這個字串的前面7位的固定的長度,在第8位的時候是該省級的id,通過substring擷取到截至第乙個;號的位置,再通過+0把字串轉化為數字實現,

另外還可以通過正則實現,相對更簡單一些:

select * from user

where area_data regexp 'i:25;';

因為i:25;這樣的字串代表了區域表的主鍵id,所以永遠不會查到同一條記錄相同的串。

當然如果引數是區域 的名稱也完全可以用like,如;

select * from c_qd_agent where area_data like '%安徽省%'; 或

select * from c_qd_agent where area_data like '%i:25;%';

但沒有測試大資料的時候執行效率。。。。。

序列化和反序列化方法

region 序列化和反序列化 反序列化方法 反序列化物件型別 反序列化字串或者xml檔案路徑 public static t desrialize string xml else using tr return obj 反序列化方法 xml字串 反序列化物件的型別 反序列化後的物件 public ...

序列化(序列化)

原書上翻譯為序列化,msdn翻譯為序列化 作用 當需要儲存,或者網路傳輸 remoting時,資料 物件或值 需要序列化 類似於打包傳輸檔案。system.serializableattribute 序列化是指儲存和獲取磁碟檔案 記憶體或其他地方中的物件。在序列化時,所有的例項資料都儲存到儲存介質上...

PHP多種序列化 反序列化的方法

序列化是將變數轉換為可儲存或傳輸的字串的過程 反序列化就是在適當的時候把這個字串再轉化成原來的變數使用。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料,使程式更具維護性。1.serialize和unserialize函式 這兩個是序列化和反序列化php中資料的常用函式。序列化陣列 s serializ...