Sou*_*sak 8 php mysql sql serialization
我如何从mysql数据库中的序列化字段搜索除mysql之外的语句?
数据是:
a:9:{s:2:"m1";s:4:"1217";s:2:"m2";s:8:"9986-961";s:2:"m3";s:19:"1988-03-07 00:00:00";s:2:"m4";s:0:"";s:2:"m5";s:0:"";s:2:"m6";s:0:"";s:2:"m7";s:3:"104";s:2:"m8";s:6:"150000";s :2:"m9";s:18:"Ok Then, Yes It Is";}
Run Code Online (Sandbox Code Playgroud)
我需要m9值为'Yes It Is'的行.我不想使用mysql'like'语句.
我试过了:
SELECT * FROM table WHERE field like '%Yes It Is%'
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
Sou*_*sak 15
我找到了一个使用正则表达式的解决方案
SELECT *
FROM table_name
WHERE `field` REGEXP '.*"array_key";s:[0-9]+:".*array_value.*".*'
SELECT *
FROM table_name
WHERE `field` REGEXP '.*"m9";s:[0-9]+:".*Ok Then, Yes It Is.*".*'
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助:
http://www.namasteui.com/search-from-serialize-field-in-mysql-database/
您是否尝试过以下方法:
SELECT * FROM table WHERE field like '%"m9";s:18:"Ok Then, Yes It Is";%'
Run Code Online (Sandbox Code Playgroud)
?
但事实上,如果你想搜索这些数据,你应该简单地创建表的正确结构,而不是将所有序列化数据放在一列中
| 归档时间: |
|
| 查看次数: |
14534 次 |
| 最近记录: |