【发布时间】:2014-01-22 23:01:52
【问题描述】:
我正在尝试根据特定搜索条件搜索和替换 mssql 中的列中的特定文本。我只是弄错了。
我尝试使用此线程中的 2 个示例,但无法正确使用 - Updating serialised array in mysql (without unserialising?)
注意wp_postmeta 是表名,meta_value 是列名
SET @search = 'View Map +';
SET @replace = 'View New Map2 +';
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value, CONCAT('s:',
LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"',
@replace, '"')) WHERE `meta_id` = 170442
我收到此错误
MySQL returned an empty result set (i.e. zero rows)
我也尝试过第二个选项,但仍然失败
$old = 'View Map +';
$new = 'View New Map2 +';
$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';
$query = "UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,
'{$search}','{$replace}') WHERE `meta_id` = 170442 and
meta_value LIKE '%View Map +%';";
我收到了这个错误
$old = 'View Map +';
MySQL 说:
Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near '$old =
'View Map +''at line 1
有什么想法吗?
谢谢
【问题讨论】:
标签: search serialization replace deserialization