【问题标题】:UPDATE MySQL table that contains comma (,) in the field更新字段中包含逗号 (,) 的 MySQL 表
【发布时间】:2011-11-22 19:15:57
【问题描述】:

导入到 MySQL 表中的是包含用户生成的字段值的报告。

可能的字段值包括:

  • 前缀,1234
  • 前缀1234
  • PREFIX_1234

所有示例值都表示相同的内容,但输入方式不同(我不控制输入系统)。

我希望所有值都使用这种格式:

  • PREFIX_1234

我试图对数据库运行这个 PHP 查询来修复逗号值:

$sql = "UPDATE tableA
SET unit_number = replace(unit_number,'FRGN,','FRGN_')
WHERE unit_number like 'FRGN,%'";

但这似乎不起作用。

我是否需要转义查询中的逗号才能使其正常工作?

【问题讨论】:

  • 应该可以正常工作,但究竟是什么不工作?
  • 你真的想要 WHERE 子句中的 trail_number 还是 unit_number?
  • 你引用了unit_number和trailer_number...你不应该引用同一个字段吗?
  • 修复了 'unit_number' 和 'trailer_number' 之间的差异 -> 没有使我的查询示例保持一致!

标签: php mysql replace


【解决方案1】:

试试这个:

$sql = "UPDATE tableA
SET unit_number = concat('FRGN_', replace(replace(replace(unit_number,'FRGN,','') ,'FRGN_',''), 'FRGN', ''))";

或

$sql = "UPDATE tableA
SET unit_number = concat('FRGN_', replace(replace(text,'FRGN,','') ,'FRGN',''))
WHERE unit_number NOT LIKE 'FRGN\_%'";

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多