从数据库中删除垃圾

时间:2014-11-24 14:46:57

标签: mysql

我的数据库包含两个字段“name”和“generic_name”,包含大量数据。但它有一些我不需要的信息。例如:

       name
    ----------         
item    

                      J  E    4                               
                              Share           Facebook           Stumbleupon         Twitter           Google+              Pinterest           Linkedin        +   


     generic_name
  -----------------
item    

                      J  E    4                               
                              Share           Facebook           Stumbleupon         Twitter           Google+              Pinterest           Linkedin        +  

我不希望任何字段中出现以下字符串:

                "J  E    4                                
                              Share           Facebook           Stumbleupon         Twitter           Google+              Pinterest           Linkedin        +   "

我对sql查询不太满意。请建议如何从所有单元格中删除垃圾字符串。

这是我试过的查询:

  DELETE FROM `master_med` WHERE `Sl_No` IN ( SELECT Sl_No from `master_med` where `MEDICINE_NAME`=' J  E    4                                                                    Share           Facebook           Stumbleupon         Twitter           Google+              Pinterest           Linkedin        +                       ')

获取错误:#1093 - 您无法在FROM子句中为更新指定目标表'master_med' 在数据库medinfo上运行SQL查询/查询:文档

1 个答案:

答案 0 :(得分:0)

不清楚,你在问什么。
这可能是我可以在没有更多信息的情况下给你的最佳答案。 记住,比较长字符串时识别行的方法很糟糕。
最好的操作是创建此字符串的md5,然后在行中找到它然后将其删除。

$string_hash = md5('string i dont want to');
DELETE FROM table WHERE MD5(item) = $string_hash

或者(不是很好的方法)

DELETE FROM `master_med` WHERE `Sl_No` IN (
    SELECT Sl_No FROM
    (
        SELECT Sl_No from `master_med` where TRIM(MEDICINE_NAME)=TRIM('JE    4                                                                    Share           Facebook           Stumbleupon         Twitter           Google+              Pinterest           Linkedin        +                       ')
    ) AS todelete
 )