我有一个如下的SQL查询。
select *
from table
where content like '%' + search_content + '%'
如果search_content = 'JAVA'
,它将返回包含xxxJAVAxxx
的数据,这是可以的。
但是如果我的search_content = 'JAVA ABC XYZ'
不在返回包含xxxJAVAxxx
的数据。我不想这样。
如何处理这种情况?
答案 0 :(得分:0)
考虑您的示例,您可以添加 OR 条件以涵盖所有情况:内容包含,以所需字符串开头或结尾。
select *
from table
where (content like '%JAVA%' or content like 'JAVA%' or content like '%JAVA')
更优雅的方式(假设您使用postgres)
select *
from table
where position('JAVA' in content) > 0
它是做什么的?它找到可以在内容中找到“ JAVA”子字符串的位置。如果子字符串存在,则正数大于0。
您可以在SQL Server中找到等效功能。
select *
from table
where CHARINDEX('JAVA', content) > 0