我的数据库中有一个表,其中有一个名为“Tags”的字段,例如iOS,Android,Java,JavaScript等.我想选择此表中与某些标签匹配的所有项目,例如
ID | name | Tags
— | ——- | —–
1 | name1 | iOS,AndroID
2 | name2 | JavaScript,CSS
3 | name3 | HTML,Java
现在,如果我只想要标记为’Java’的项目(只有ID = 3的那个),我这样做:
SELECT * FROM posts WHERE Tags liKE '%Java%';
但是,正如您想象的那样,它返回第二个(JavaScript)和第三个(Java)项.
我该怎么做只返回第三个?
最佳答案在MysqL中,最好的解决方案是find_in_set():SELECT *FROM postsWHERE find_in_set('Java',Tags) > 0;
在MysqL和其他数据库中,您也可以使用like来执行此 *** 作,但是您需要在所有内容中放置分隔符:
SELECT *FROM postsWHERE concat(',',Tags,') like '%,%';
分隔符可以防止与类似标记混淆(好吧,混淆不涉及逗号). 总结
以上是内存溢出为你收集整理的php – MySQL“喜欢”(误报)全部内容,希望文章能够帮你解决php – MySQL“喜欢”(误报)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)