簡體   English   中英

如何在MYSQL中對序列化數據應用搜索過濾器

[英]How to apply search filter on serialized data in MYSQL

我的數據庫表中有以下序列化數據。

我想搜索“鍵名”:“%value%”。 我有以下格式的序列化數據。

我的序列化數據

a:31:{s:10:"contact_no";s:11:"1234-123456";s:13:"guardian_name";s:11:"Atif, Ashif";s:7:"program";s:10:"Essex SCHS";s:15:"sub_coordinator";s:3:"abc";s:7:"daycare";s:3:"abc";s:18:"daycare_contact_no";s:10:"9013256590";s:14:"daycare_tel_no";s:11:"1234-123456";s:9:"specialty";s:3:"abc";s:7:"address";s:3:"abc";s:4:"city";s:3:"abc";s:5:"state";s:2:"MT";s:8:"zip_code";s:6:"123456";s:8:"phone_no";s:10:"9033153594";s:8:"extra_no";s:10:"1234567890";s:9:"mobile_no";s:10:"9033153594";s:13:"contact_notes";s:3:"abc";s:8:"email_id";s:15:"abc@example.com";s:6:"fax_no";s:10:"1234567890";s:9:"id_number";s:3:"123";s:16:"service_provided";s:3:"abc";s:12:"case_manager";s:3:"308";s:18:"additonal_language";s:3:"abc";s:3:"sex";s:4:"male";s:10:"birth_date";s:10:"01/24/2018";s:17:"initial_isfp_date";s:10:"12/27/2017";s:13:"isfp_received";s:10:"12/12/2017";s:9:"isfp_date";s:10:"12/27/2017";s:11:"assign_date";s:10:"12/27/2017";s:10:"fvc_due_by";s:10:"12/19/2017";s:14:"email_approval";s:2:"no";s:9:"id_status";s:6:"active";}

我已經嘗試過以下查詢,但是沒有成功。

查詢我嘗試過

SELECT * FROM ta_children c
JOIN ta_children_meta cm ON c.id = cm.child_id 
WHERE cm.child_data like '%atif%' AND cm.child_data like '%guardian_name%'

查詢中的guardian_name是鍵和%atif%搜索值。 這是單個的,但可能是動態的。 因此,請對此進行動態搜索。

必需:如何使用鍵值對實現對序列化數據的搜索。

誰能幫我這個?

您可能需要為此使用REGEXP正則表達式:

SELECT * FROM ta_children c
JOIN ta_children_meta cm ON c.id = cm.child_id 
WHERE cm.child_data  REGEXP '.*"array_key";s:[0-9]+:".*array_value.*".*'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM