Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php在mysql中搜索/替换空记录_Php_Mysql_Sql_Replace - Fatal编程技术网

php在mysql中搜索/替换空记录

php在mysql中搜索/替换空记录,php,mysql,sql,replace,Php,Mysql,Sql,Replace,正在尝试使用php/mysql进行搜索和替换。我在指定的表标题/列中执行此操作。当我的搜索词有值时,它可以正常工作。但是,我希望在指定列中搜索空字段并替换为值。当我的搜索词为空字符串时,它无法执行搜索和替换。有什么帮助吗 $SearchAndReplace_header = isset($_POST['SearchAndReplace_header']) ? $_POST['SearchAndReplace_header'] : ""; $SearchAndReplace_search_ter

正在尝试使用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

你能解释什么是空记录吗?不存在的记录?或与某些
WHERE
子句匹配的记录?为
null
值添加异常。我认为
REPLACE()
在遇到它时找不到任何要替换的内容。@ajreal:具有空/null的空记录values@karto-
NULL'
@ajreal:我明白了。但是你能给我的代码举个例子吗?你就不能只有一个正常的if,因为你只有两个案例吗?SET column=IF(column为NULL或column='''replace',replace(column'find','replace'))@Puggan Se:请在我的代码上尝试一下,让我看看清楚的图片