MySQL在同一字段中两次选择相同的值

时间:2019-04-12 19:10:34

标签: mysql

我的牢房有
'200 Example Avenue 209 Example Avenue'

我不确定换行符如何到达那里。 我想在表上运行查询: 如果直到换行符的内容匹配换行符后的文本,然后删除换行符后的文本。

我不确定从哪里开始-任何指针将不胜感激。

2 个答案:

答案 0 :(得分:1)

比较char(10)之前和之后的2个子字符串,如果相等,则仅保留第一个子字符串:

update tablename
set value = left(value, instr(value, char(10)) - 1)
where 
  value like concat('_%', char(10), '%_')        
  and                               
  left(value, instr(value, char(10)) - 1) = right(value, length(value) - instr(value, char(10))) 

value更改为您列的名称。
参见demo

答案 1 :(得分:0)

您可以使用REGEXP_SUBSTR分别提取换行之前和之后的单元格值,并比较两个值。例如

data %>%
   mutate(time1 = map(Date, pluck, last) %>% 
                    reduce(c))

例如:https://www.db-fiddle.com/f/81juEza4M9QAtRpdLagWhh/0#&togetherjs=QbvSuquqwk