【问题标题】:How do you remove random text in a field in a mySQL table using phpMyAdmin如何使用 phpMyAdmin 删除 mySQL 表中的字段中的随机文本
【发布时间】:2015-09-13 19:16:10
【问题描述】:

我一直在与一家公司合作,该公司在世界各地转换数据库。他们将一组随机文本放在表格列内文本的末尾,我想尽可能轻松地删除文本。我不想手动删除数千个条目。

例如,我有一个名为“用户”的表。
表“用户”有许多不同的字段,但我要修改的是“用户名” 对于该列,我们有以下条目:

  • 山姆-ABC123
  • 鲍勃-ABC234
  • 乔-ABC578

我可以进入每一行并更改每个条目以使其显示

  • 山姆
  • 鲍勃

但仅在那个领域我就有 4,000 个。相当耗时且容易出错!

我尝试进入 phpMyAdmin 并进行搜索和替换,但没有任何改变。

我试过了:

查找:ABC% 替换:定义 栏目:用户名

预览显示所有表格,但原始字符串和替换字符串相同;什么都没有被替换

我试过了:

查找:ABC* 替换:定义 栏目:用户名

预览不显示任何内容。

提前致谢!

【问题讨论】:

  • 将数据库导出为 SQL 文件并执行正则表达式搜索和替换?由于随机值是用破折号与用户名分隔的,这应该很容易。替换后只需重新导入 SQL 文件。 MySQL 没有正则表达式替换功能。

标签: mysql phpmyadmin


【解决方案1】:

既然 phpMyAdmin 允许你执行任何查询,你为什么不这样做

UPDATE users SET username = SUBSTRING(username, 0, INSTR(username, '-') - 1);

【讨论】:

    【解决方案2】:

    由于破折号用作分隔符,您可以使用 SQL 查询和SUBSTRING_INDEX

    UPDATE users
    SET username = SUBSTRING_INDEX(username, '-', 1)
    

    请看小提琴here

    【讨论】:

    • 你太棒了!谢谢!也谢谢你带我玩沙区。我不知道它存在!
    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 2015-05-10
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2013-05-04
    相关资源
    最近更新 更多