Mysql在同一字段中选择相同值的位置两次
我有一个单元格有Mysql在同一字段中选择相同值的位置两次,mysql,Mysql,我有一个单元格有 '200示例大道 209示例“在其中 我不知道断线是怎么进去的。 我想在表上运行一个查询,该查询显示: 如果换行前的内容与换行后的文本匹配,则删除换行后的文本 我不确定从何处开始-任何指针都将不胜感激。比较char(10)前后的两个子字符串,如果它们相等,则只保留第一个子字符串: update tablename set value = left(value, instr(value, char(10)) - 1) where value like concat('_%'
'200示例大道
209示例“
在其中
我不知道断线是怎么进去的。
我想在表上运行一个查询,该查询显示:
如果换行前的内容与换行后的文本匹配,则删除换行后的文本
我不确定从何处开始-任何指针都将不胜感激。比较
char(10)
前后的两个子字符串,如果它们相等,则只保留第一个子字符串:
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
更改为列的名称。请参阅。您可以使用REGEXP\u SUBSTR分别提取换行之前和之后的单元格值,并比较这两个值。比如说
UPDATE tablename
SET columname = TRIM(TRAILING '\n' FROM REGEXP_SUBSTR(columname,".*\n"))
WHERE TRIM(TRAILING '\n' FROM REGEXP_SUBSTR(columname,".*\n")) =
TRIM(LEADING '\n' FROM REGEXP_SUBSTR(columname,"\n.*"))
;
例如:您的示例中的行不匹配。输入错误?如果您只想知道该值是否出现两次,可以简单地使用
WHERE列,如“%value%value%”
。您可以替换中间的%
以匹配换行符,例如CONCAT('%value',CHAR(10),'value%')
。我还没有测试过。你可能可以使用MySQL在换行之前和之后提取部分,并比较它们。我正在考虑instr来确定换行符的位置,mid来拉出零件。可能重复的REGEXP\u SUBSTR
无法识别