php - MySQL - 删除行中的值,而不是删除行

标签 php mysql

如果某行包含搜索值,我想删除搜索值(不是行)。例如,如果我想删除香蕉,它应该只从包含香蕉的行中删除香蕉。

试过了,

DELETE FROM users where eat like '%banana%' 

但是,它会删除行。那么我怎样才能只从行中删除搜索值呢?

最佳答案

你可以试试这个 -

UPDATE users SET eat = REPLACE(eat, 'banana', '') where eat like '%banana%';

这将仅替换 eat 列中存在的 banana

更新

循环遍历数据并替换这些值。这可能有帮助 -

$check_val = 'banana';

//select those rows first
"select id, eat from users where eat like '%" . $check_val . "%'"

foreach($data as $v) {

    $temp= explode(',', $v['eat']);
    $temp= array_map(function($t) use($check_val) {
        return (strpos($t, $check_val) !== false) ? null : $t;
    }, $temp);
    $temp = array_filter($temp);
    $v['eat']= implode(',', $temp);

    "update users set eat= '" . $v['eat'] . "' where eat like '%" . $check_val . "%'"
}

关于php - MySQL - 删除行中的值,而不是删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264796/

相关文章:

php - Composer 更新无法更新 Laravel 依赖项

c# - 计算与特定日期相关的 mysql 数据库中的多个值

mysql - 如何在 1 Mysql 中进行求和、乘法和除法

php - 在 WooCommerce 中获取订单小计

php - PSR2 代码风格和 PHP Code Sniffer 不一致?

php - foreach 循环 - 如果大于 count 否则

mysql - 基于 WHERE 的多个聚合查询

php - 在同一张表中加入并使用 IMPLODE 进行 FOREACH 以获取菜单

java - 基本直接的 Tomcat-MySQL 链接

php - 调用未定义函数 phpinclude_once()