【问题标题】:Generic MySQL Query for Trimming Column Data用于修剪列数据的通用 MySQL 查询
【发布时间】:2016-06-10 10:21:43
【问题描述】:

我有一个表格,其中一列包含如下数据:

file1 (1.1.1.1).txt
file2 (1.1.1.2).txt
file3 (1.1.1.3).txt
file4 (1.1.1.4).txt

我想剪掉左括号中的文字。修剪后,更新后的数据应该如下:

file1
file2
file3
file4

由于记录数以百计,是否有通用方法来修剪不需要的文本? MySQL

中的查询是如何编写的

【问题讨论】:

  • SELECT SUBSTRING_INDEX('hello world',' ',1);

标签: mysql string trim


【解决方案1】:

您的 SQL 查询可能是这样的:

         UPDATE your_table_here SET file_name = RTRIM(SUBSTRING(file_name, 1, LOCATE('(', file_name)) - 1 );

只需替换 file_name 和 your_table

【讨论】:

  • 输出以“file1 (”的形式出现。我希望在删除之前将“开括号”和空格。
  • ORACLE 中的等效查询是什么?
  • 只在oracle中寻找子字符串/字符串位置函数。观察索引是如何工作的,你会没事的。我认为它与 SQL 标准没有太大区别
【解决方案2】:

找到括号,减去 2 个位置应该可以满足您的需求。

MySQL

更新你的表
    SET your-column = LEFT(your-column, LOCATE('(', your-column, 1)-2)

与 Oracle 语法相同的前提

更新你的表
    SET your-column = SUBSTR(your-column, 1, INSTR(your-column, '(') - 2);

【讨论】:

  • ORACLE 中的等效查询是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
相关资源
最近更新 更多