我在项目中查询基于标签的搜索结果时遇到了一些问题。我在这里寻找答案,而且当用户搜索" BAR" " BARS"的结果可以通过使用LIKE和_(下划线)通配符来包含但是如果用户搜索" BARS"该怎么办?我已经对它进行了分类,但不知道它是否是一种良好的做法。
TAGS TABLE: -
#id | tag#
------ --------
1 | bar
1 | pub
1 | disc
2 | bars
2 | pub
2 | disc
此查询为我提供了标签栏和栏+ 1个字符的产品的所有ID
$sql = "SELECT id FROM tags WHERE tag='bar' OR tag LIKE 'bar_'";
所以我为我的解决方案所做的是: -
$q = substr( 'bars', 0 , -1 );
$sql = "SELECT id FROM tags WHERE tag='bar' OR tag LIKE 'bar_' OR tag LIKE '$q'";
这是好的做法吗?或者有一些替代方案。