专栏tags
:
sky***earth***moon
sun***animals***iron
silver***gold***night
***
- 是不同标记的分隔符
我想按字符串anima
$sql = "select * from images where tags like '%anima%'";
它会在结果中显示animals
,但我只需要anima
作为整个字符串,由***
分隔。
在上面的示例中,结果应为零。
任何帮助?
答案 0 :(得分:3)
使用REGEXP
并搜索字边界所包围的anima
:
SELECT *
FROM images
WHERE tags REGEXP '[[:<:]]anima[[:>:]]';
按照以下链接进行演示,该演示显示逻辑正确。
REGEXP和RLIKE是REGEXP_LIKE()的同义词。
因此,我们也可以使用RLIKE
代替REGEXP
。
答案 1 :(得分:0)
您也可以按照以下方式使用
SELECT * FROM `test_user` WHERE name RLIKE "[[:<:]]anima[[:>:]]"
答案 2 :(得分:0)
使用Tim Biegeleisen的回答,只是为了展示如何在php中添加。请记住,您应该使用参数化查询,而这个例子不是。
$query = "SELECT *
FROM images
WHERE tags REGEXP '[[:<:]]{$_POST['abc']}[[:>:]]'";