如何获取包含字段中的字符串的所有行(SQL)?

问题描述:

我有一张名为articles的表格,我想要检索articleTags字段中包含标签的所有文章。 articleTags字段包含一组逗号分隔的字符串(标记)。如何获取包含字段中的字符串的所有行(SQL)?

如果我试图找到其中包含从表中它应该返回的结果有一个articleTags场,看起来像这样的标签PHP的一篇文章 -

  • PHP
  • C++,PHP, python

如果我在PHP中这样做,我会简单地使用爆炸,但我不想穿过数据库中的每一行,而是使用更有效的方法。

你可以使用类似操作

select * from articles where tag like '%php%' 

如果你担心这是不是PHP,但有PHP在他们喜欢说phphp那么你可以用逗号使用

select * from articles where tag like '%php,%' or tag like '%,php%' 

它匹配:

  1. PHP
  2. randomwordphp
  3. phprandomword
  4. randomphpword

查询

SELECT * 
FROM articles 
WHERE articleTags LIKE "%php%" 

在Oracle中,你可以使用"Oracle text"标签

,简单的查询数据,如

select * from articles where contains(fieldName, contentText) > 0 

关于Oracle文本查询您可以阅读here

+0

不使用Oracle,但感谢反正 – liamzebedee