表 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...