Php 选择like,但作为分隔符之间的整个字符串
列Php 选择like,但作为分隔符之间的整个字符串,php,mysql,Php,Mysql,列标记: sky***earth***moon sun***animals***iron silver***gold***night ***-是不同标记的分隔符 我想按字符串anima $sql = "select * from images where tags like '%anima%'"; 结果是animals,但我只需要anima作为整个字符串,由***分隔 在上面的例子中,结果应该是零 有什么帮助吗?使用REGEXP并搜索被单词边界包围的anima: SELECT * F
标记
:
sky***earth***moon
sun***animals***iron
silver***gold***night
***
-是不同标记的分隔符
我想按字符串anima
$sql = "select * from images where tags like '%anima%'";
结果是animals
,但我只需要anima
作为整个字符串,由***
分隔
在上面的例子中,结果应该是零
有什么帮助吗?使用
REGEXP
并搜索被单词边界包围的anima
:
SELECT *
FROM images
WHERE tags REGEXP '[[:<:]]anima[[:>:]]';
选择*
从图像
其中标记REGEXP'[[::]]';
按照下面的链接进行演示,演示逻辑是正确的
从:
REGEXP和RLIKE是REGEXP_LIKE()的同义词
因此,我们也可以使用
RLIKE
而不是REGEXP
,您也可以使用下面的方法
SELECT * FROM `test_user` WHERE name RLIKE "[[:<:]]anima[[:>:]]"
从'test_user'中选择*,其中name RLIKE“[[::]]”
使用Tim Biegeleisen answer,只是为了演示如何在php中添加。请记住,您应该使用参数化查询,而本例中没有
$query = "SELECT *
FROM images
WHERE tags REGEXP '[[:<:]]{$_POST['abc']}[[:>:]]'";
$query=“选择*
从图像
其中标记为REGEXP'[[::]]'”;
你能用$\u POST['abc']
而不是anima
来写你的regexp吗?我不能,因为我的PHP很弱,我不知道你在用哪个PHP框架。但上面的查询可能就是解决这个问题的方法。现在我将添加一个演示。没有任何框架,$\u POST
是php中的一个常见变量。我的regexp
很弱,我会尝试的,无论如何,非常感谢。玩一下这个演示,直到你觉得使用它足够舒服。只是为了说明如何添加帖子的价值。参数化查询是另一个主题。