如何解决如何获取存储在mysql数据库中的数组的特定值
C:/Users/UserA/
我这里需要的值是3。
如果这是一个正常数字,我可以用查询来总结所选字段,但是这样我会失败
是否可以在查询中进行数学运算,还是必须处理查询的结果(如何?)?
由于对@kabirbaidhya的回答而进行了更新 进行反序列化here Online可以得到正确的结果。
处理查询没有得到预期的结果
a:1:{i:0;s:1:"3";}
object(stdClass)#9463(1){[“ VALUE”] =>字符串(18)“ a:1:{i:0; s:1:” 3“;}”} object(stdClass)# 9464(1){[“” VALUE“] =>字符串(20)” a:1:{i:0; s:3:“ 9,5”;}“} object(stdClass)#9465(1){[ “ VALUE”] =>字符串(20)“ a:1:{i:0; s:3:” 7,5“;}”}
更新2: 我的最终工作代码:
function summe_bilden()
{
global $wpdb;
$value = $wpdb->get_results("SELECT VALUE FROM wp_vxcf_leads JOIN wp_vxcf_leads_detail ON wp_vxcf_leads.id = wp_vxcf_leads_detail.lead_id WHERE name = 'stunden'");
foreach($value as $a)
{
$arr = unserialize($a);
var_dump($a);
echo $arr[0];
}
}
解决方法
快速解答: 否
sql中没有任何序列化或反序列化功能
因此,您需要从sql中获取所有数据并反序列化它们,最后获得所选值的总和。但是请注意,我输入的样本可能在大数据方面存在问题
示例:
<?php
$query = {your query}
$sum = 0;
while($row = $query->fetch_array(MYSQLI_ASSOC)){
$column = $row['column'];
$column = unserialize($column);
$column = (int)$column;
$sum = $sum + $column
}
?>
,
在进一步搜索术语“ unserialize($ column)”之后,我发现了另一条与我的问题相关的帖子 Unserialize through query at database level itself
经过正确位置的尝试和错误后,我发现此查询有效
SELECT VALUE,SUBSTRING_INDEX(SUBSTRING_INDEX(VALUE,'"',2),-1) AS stunden FROM wp_vxcf_leads JOIN wp_vxcf_leads_detail ON wp_vxcf_leads.id = wp_vxcf_leads_detail.lead_id WHERE name = 'stunden'
,
这是通过使用PHP函数serialize
序列化数组而在数据库中保留的值。
这意味着,唯一正确的方式是使用PHP及其相应功能unserialize
将其反序列化。
步骤:
- 使用
SELECT VALUE from your_table
之类的查询从数据库获取值。 - 反序列化该值以获得一个PHP数组,该数组将为您提供所需的数据。
foreach($value as $a) {
$arr = unserialize($a->VALUE);
var_dump($a);
echo $arr[0];
}
注意:您不应该仅通过mysql查询来处理它-不可靠,并且对于这种使用情况不确定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。