这个问题在这里已经有答案了:
mysql查询在逗号分隔的字符串中查找值(11个答案)
11个月前关门了。
我正在努力用php编写一个mysql查询,它可以在逗号分隔的字符串中找到与一个项完全匹配的项。注意,由于各种原因,我无法更改数据模型
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
谢谢你的建议
1条答案
按热度按时间xxe27gdn1#
你可以用
find_in_set()
:重要提示:
不要将变量串联到查询字符串中,因为这会使代码效率低下,并使您暴露于sql注入中;相反,请使用参数化查询。相关阅读:如何防止php中的sql注入?
在数据库列中存储分隔列表是一种不好的做法;它基本上违背了关系数据库的目的,使简单的事情变得不必要的复杂(正如您开始看到的)。推荐阅读:在数据库列中存储分隔列表真的那么糟糕吗?