查询以检查数据库中是否存在分隔符之间的短语


Query for checking if phrases between delimiters exists in DB

请原谅这个糟糕的问题标题。

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

Awanto 3/Makam/Lone

我想检查字符串中的任何名称(即Awanto 3、Makam或Lone)是否存在于我的DB中的表中。永远不会存在"Awanto 3/Makam/Lone"的情况,但可能会存在"Awaonto 3"、"Makam"或"Lone"的情况。

表名为"艺术家",将检查的列为"艺术家"

我每天都会为大约数百个这样的查询做这件事,"艺术家"表中有2-3000行。

最好的方法是什么?

谢谢!

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

$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
$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子句用于查询。