2012-02-21 22 views
0

我想写快捷方式的代码如何写快捷方式的代码上删除

例如,我要删除的条目,如果它有一定的话从数据库my_table{id,my_words}

$sql= "delete from my_table where my_words like '%some1%' or my_words like '%some2%'"; 
mysql_query($sql) or die("query failed: $sql".mysql_error()); 

,我已经许多喜欢some3,some4,some5 ..等,所以我不能重复or my_words like '%some2%'

很多次,否则这将是很难与代码是如此之久。 所以我如何写数组或其他东西的快捷方式!

感谢您的帮助

+1

你想让代码重新使用吗?只需将其包装在一个对象中,或者可以一次又一次地调用的函数。使其足够通用,您可以发送数组或单个字符串进行删除。不要将正则表达式与SQL混用,如果处理不当,会导致安全问题。 – Jakub 2012-02-21 15:17:08

+0

同样使用正则表达式会使查询变慢。 – 2012-02-21 15:20:14

+0

这感觉就像你试图以相当迂回的方式解决问题。你试图用上面的方法究竟是什么?我猜删除网址中有特定域名的网址?如果是这样的话,可能值得在插入点单独存储域,即单独的域将给你一个特定的域来选择。只是一个想法。 – 2012-02-21 15:21:15

回答

1
$a = array('your','words',...); 

foreach($a as $k=>$value{ 
$sql= "delete from my_table where my_words like '%$value%'"; 
mysql_query($sql) or die("query failed: $sql".mysql_error()); 
} 

不使用或在您的SQL语句这一次,只是循环,因为你需要删除所有 - 只是做了每个单词。

+0

完美的是我的问题是关于〜谢谢Elen – 2012-02-21 15:26:18

+0

你能解释为什么要避免使用'DELETE [...] WHERE column =? OR column =?'?我没有看到这样做有任何问题。另一方面,我看到您的建议的性能问题。 – Basti 2012-02-21 15:26:30

+0

@巴斯蒂 - 因为在这种情况下,这是没有必要的,再次,因为我明白杰克需要快速解决他的问题 - 不是一个长期的工作解决方案... – Elen 2012-02-21 15:32:38