PHP搜索/替换mysql中的空记录


php search/replace empty records in mysql

尝试使用php/mysql进行搜索和替换。我在指定的表头/列中这样做。当我的搜索词有一个值时,它工作得很好。但是,我想在指定列中搜索空字段并替换为值。当我的搜索项是空字符串时,它无法进行搜索和替换。任何帮助吗?

$SearchAndReplace_header = isset($_POST['SearchAndReplace_header']) ? $_POST['SearchAndReplace_header'] : "";
$SearchAndReplace_search_term = isset($_POST['SearchAndReplace_search_term']) ? $_POST['SearchAndReplace_search_term'] : "";
$SearchAndReplace_replace_with = isset($_POST['SearchAndReplace_replace_with']) ? $_POST['SearchAndReplace_replace_with'] : "";
//foreach($fields as $key => $val) {
 //   if($SearchAndReplace_header == "all" || ($SearchAndReplace_header == $val)) {
        // replace column value with parameter value
        $sql = "UPDATE ".$table_name." SET ".$val." = REPLACE(".$val.",'".$SearchAndReplace_search_term."','".$SearchAndReplace_replace_with."')";                                              
        $db->query($sql);
   // }
  // }

您不能在空字段上进行替换,您必须直接设置该字段。

UPDATE table 
SET column = 'value' 
WHERE column = '' or column is null 

如果您想在一个查询中涵盖这两种情况,您可以这样做:

UPDATE table 
SET column = CASE 
                 WHEN column IS NULL OR COLUMN = '' 
                     THEN 'replace' 
                 ELSE
                      REPLACE(column, 'find', 'replace')
             END CASE