尝试使用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);
// }
// }
答案 0 :(得分:0)
您无法在空白字段上进行替换,您必须直接设置字段。
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