使用MYSQL和PHP查询以逗号分隔的字符串返回项目的精确匹配
我正在努力用PHP编写一个MYSQL查询,它可以在逗号分隔的字符串中找到与一个项完全匹配的项。注意,由于各种原因,我无法更改数据模型使用MYSQL和PHP查询以逗号分隔的字符串返回项目的精确匹配,php,mysql,sql,csv,where-clause,Php,Mysql,Sql,Csv,Where Clause,我正在努力用PHP编写一个MYSQL查询,它可以在逗号分隔的字符串中找到与一个项完全匹配的项。注意,由于各种原因,我无法更改数据模型 Musicians id|artist 1|beatles 2|rolling stones $searchterm = "beatles" 很容易将字符串与以下内容精确匹配: WHERE artist = '$searchterm' 我怎样才能确定以下各项中的精确匹配 Musicians id|artist 1|beatles,the beatles,th
Musicians
id|artist
1|beatles
2|rolling stones
$searchterm = "beatles"
很容易将字符串与以下内容精确匹配:
WHERE artist = '$searchterm'
我怎样才能确定以下各项中的精确匹配
Musicians
id|artist
1|beatles,the beatles,the fab four,fab four,fab for
2|rolling stones,the rolling stones,stones,the stones
$searchterm = "fab four"
//something like the following although it does not work
WHERE $searchterm IN artist
感谢您的建议您可以使用:
重要提示:
- 不要将变量连接到查询字符串中,因为这会使代码效率低下,并使您暴露于SQL注入;相反,请使用参数化查询。相关阅读:
- 在数据库列中存储分隔列表是一种糟糕的做法;它基本上违背了关系数据库的目的,使简单的事情变得不必要的复杂(正如您开始看到的)。推荐相关阅读:
WHERE FIND_IN_SET(:searchterm, artist)