2014-11-24 70 views
-3

我的数据库包含两个字段“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 - 您不能指定目标表“master_med”的更新在FROM子句 运行SQL查询/查询数据库用药指导:文档

+0

你在这两个领域的期待只是 “项”? – Jonny 2014-11-24 14:49:08

+1

多数民众赞成在很不清楚你在问什么,请再次格式化你的表格 – Shaeldon 2014-11-24 14:49:46

回答

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 
) 
+0

我想删除不必要的字符串J E 4 分享Facebook +所有单元格 – 2014-11-24 16:10:27

+0

使用第二个选项时出错。您无法在FROM子句中指定要更新的目标表'master_med' – 2014-11-24 16:18:08

+0

更新您的答案并发布您的sql – JTC 2014-11-24 16:34:05