Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql在同一字段中选择相同值的位置两次_Mysql - Fatal编程技术网

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
无法识别