久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

oracle如何查出某個字段帶空格的數據

147次閱讀
沒有評論

共計 2288 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章主要為大家展示了“oracle 如何查出某個字段帶空格的數據”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“oracle 如何查出某個字段帶空格的數據”這篇文章吧。

問題描述:把一個表從 oracle 同步到阿里云 rds, 居然報錯違反唯一鍵,很是詫異,然后具體查看報錯的那條數據,結果如下:果真有兩條。

MySQL [bidinfo] select record_id ,login_id from  meminfo.t_member_info  where  login_id= woaini1314

+———–+————-+

| record_id | login_id    |

+———–+————-+

|  15142804 | woaini1314  |

|  78124319 | woaini1314  |

+———–+————-+

2 rows in set (0.00 sec)

然后根據 id 在 oracle 中查詢,發現其中一個帶空格,一個不帶空格,

select record_id ,login_id from  infoservice.t_member_info  where record_id in(15142804 ,78124319);

這就麻煩了,這可是用戶信息,不能隨便刪除,猜測是用戶在注冊的時候,多打了個空格,然后發現登陸不上去,就從新注冊了個不帶空格的相同名字的用戶,然而 oracle 能識別到空格,但是 mysql 識別不到空格,正好我們有會員登陸日志,經查詢確實是猜想這樣。那么下來怎么統計出帶空格的用戶的主鍵 record_id 呢?

具體描述:

liuwenhe   和 liuwenhe+ 空格

由于 oracle 中識別空格,以下兩條 sql 查的結果不一樣。

select record_id ,login_id from  t_member_info  where  login_id= woaini1314

select record_id ,login_id from  t_member_info  where  login_id= woaini1314

但是 mysql 中不識別空格,以下查詢的結果是一樣的。都是兩條

MySQL [bidinfo] select record_id ,login_id from  meminfo.t_member_info  where  login_id= woaini1314

+———–+————-+

| record_id | login_id    |

+———–+————-+

|  15142804 | woaini1314  |

|  78124319 | woaini1314  |

+———–+————-+

2 rows in set (0.00 sec)

MySQL [bidinfo] select record_id ,login_id from  meminfo.t_member_info  where  login_id= woaini1314  +———–+————-+

| record_id | login_id    |

+———–+————-+

|  15142804 | woaini1314  |

|  78124319 | woaini1314  |

+———–+————-+

2 rows in set (0.00 sec)

問題出現了,這個 login_id 是個唯一鍵, oracle 中不沖突,遷移到 rds 就違反了唯一鍵了,

如下怎么查出 oracle 中帶空格的 record_id, 以便于從 mysql 中刪除帶空格的違反唯一鍵的數據。

一:先查出有問題的 login_id(去掉空格之后的 login_id)

select count(record_id),trim(login_id)  from infoservice.t_member_info group by trim(login_id) having count(record_id) 1;

二:然后查出所有有問題的 login_id(包括帶空格的和不帶空格的), 放到一個臨時表

create table liuwenhe.t_mmeber_info_bak as   select record_id ,login_id  from t_member_info  where trim(login_id) in (select  login from (

select count(record_id),trim(login_id) login from infoservice.t_member_info group by trim(login_id) having count(record_id) 1 ))

三:最后利用前兩個步驟查出的結果求出有問題的 login_id 中帶空格的那條數據的對應的 record_id.

select   record_id  from  t_mmeber_info_bak   where login_id  not  in (select trim(login_id)  from  t_mmeber_info_bak);

四:導成 txt 文件,然后利用 lord 進 mysql。

最后根據 record_id 在 mysql 中刪除相應的數據,即可,

以上是“oracle 如何查出某個字段帶空格的數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計2288字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乡宁县| 新邵县| 雷波县| 图木舒克市| 申扎县| 宿州市| 渭源县| 水城县| 清新县| 涟源市| 青浦区| 武义县| 红安县| 新民市| 万宁市| 江源县| 龙门县| 新河县| 新乡市| 吉木萨尔县| 宜都市| 延川县| 开鲁县| 东海县| 沭阳县| 中牟县| 邵阳市| 汝城县| 江津市| 雅江县| 琼结县| 安康市| 荣昌县| 松溪县| 保德县| 东乌| 天全县| 启东市| 通化市| 延长县| 巩义市|