gpt4 book ai didi

php - mysql查找包含大量数据的一行数据

转载 作者:行者123 更新时间:2023-11-29 11:47:54 26 4
gpt4 key购买 nike

我有一个像这样的 mysql 表(价格):

+------------------------------------------------------------------------+
| ID DATA INFO |
+------------------------------------------------------------------------+
| 1 2015-05-29 (3.50-22-22),(3.50-21-22),(3.50-20-22) |
| 2 2015-05-30 (4.50-22-22),(1.50-11-22),(3.00-10-02) |
+------------------------------------------------------------------------+

现在我想做一个查询,只查找包含字符串“-22-22)”的值,特别是我只想获取 2 个值 (3.50-22-22) 和 (4.50 -22-22)

所以我做了一个像这样的(部分)查询

string="-22-22)"

$sql = "SELECT * FROM price WHERE info like '%$string%'";
$array = mysqli_query($sql,$con);
while($row=mysqli_fetch_array($array)){
$info = $rows['info'];
$result= explode(",", $info);

如何继续这个查询以获得我的结果?

最佳答案

您可以使用array_filter要实现此目的,您可以传入 $result 并编写自定义回调来过滤您需要的内容。但这在一定程度上取决于您的最终需求,例如,如果您始终可以删除第一个键,则只需取消设置它,unset($results[0]),然后仅返回剩余的值( array_values )

根据 @cicciopasticcio 的评论。

你可以尝试这样的事情:

return array_filter($results, function($item) use ($string) {
return ( strpos($item, $string) !== false );
});

这是可以工作的代码,我在命令行上测试了它,它 $finalResults 保存了两个预期结果。

$string="22-22";
$finalResults = array();

$sql = "SELECT * FROM price WHERE info like '%$string%'";
$array = mysqli_query($sql,$con);
while($row=mysqli_fetch_array($array)){
$info = $rows['info'];
$result = explode(",", $info);
$search = array_filter($results, function($item) use ($string) {
return ( strpos($item, $string) !== false );
});
if (!empty($search[0])){
$finalResults[] = $search[0];
}
}

关于php - mysql查找包含大量数据的一行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com