查询DB中是否存在分隔符之间的短语

时间:2012-01-20 00:37:07

标签: php mysql

原谅可怕的问题标题。

我有这个PHP字符串,想要检查MySQL数据库中是否存在任何内容。

  

Awanto 3 / Makam / Lone

我想检查一下我的数据库中的表中是否存在字符串中的任何名称(即Awanto 3,Makam OR Lone)。永远不会出现“Awanto 3 / Makam / Lone”存在的情况,但可能会出现'Awanto 3','Makam'或'Lone'存在的情况。

表名是“艺术家”,将要检查的列是“艺术家”

我将每天为大约数百个查询执行此操作,“艺术家”表格中有2-3000行。

这样做的最佳方式是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

$parts = explode('/', $input); //split string on '/'

foreach ($parts as $artist) $where .= "artist='$artist' OR"; //build WHERE clause
$where = substr($where, 0, strlen($where)-3); //remove last OR

$query = mysql_query("SELECT * FROM artists WHERE $where"); //resource

这是在分隔符上拆分字符串并构建要在查询中使用的WHERE子句的简单方法。

答案 1 :(得分:1)

由于分隔符之间的字符串部分是完整的艺术家,不仅仅是其中的一部分,我会做类似的事情

$search="Awanto 3/Makam/Lone";

//transforms this to "Awanto 3','Makam','Lone"
$list=str_replace('/',"','",mysql_real_escape_string($search, $dbconnection));
$sql="select * from artists where artist in ('$list')";
//query and fetch