我想对数据库中的字符串字段执行相当复杂的查询。我对JPQL并不是很有经验,所以我想我会尽力得到一些帮助。复杂的JPQL字符串查询
我在数据库中有一个名为FILE_PATH
的字段。内FILE_PATH
领域,会有值,如:
- 'C:\ TEMP \文件\ FILENAME.TXT'
- “文件:\\\ C:\测试\ testfolder \ innerfolder \文件名2。 txt'
我需要能够从用户指定的查询中仅对文件名进行搜索。因此,不必简单地做一个SELECT Table FROM Table AS t WHERE t.filePath LIKE '%:query%'
,事情将不得不稍微复杂一点,以适应路径的文件名部分。文件路径和文件名是动态数据,所以我不能在其中硬编码前缀字符串。这让我非常困惑,但我知道JPQL中有一些字符串表达式可能能够处理这个需求。
基本上,我只需要返回与FILE_PATH
字段中最后一个'\'后面的给定查询匹配的所有行。这可能吗?
感谢您的帮助。
编辑:正在使用的数据库是SQL Server。
谢谢。我会试试这个。我正在使用SQL Server作为数据库。 – 2010-09-09 15:29:28
..不确定LOCATE(,, - 1)是否可以与MS SQL Server一起使用.. – 2010-09-09 15:44:07
看起来像LOCATE(,, - 1)不会使用MS SQL Server进行右侧搜索:http:// msdn.microsoft.com/en-us/library/ms186323.aspx“如果未指定start_location,则为负数,或为0,则搜索将从expression2开始。” - 所以没有反向搜索。是否可以使用原生查询?在这种情况下,您可以使用REVERSE来“模拟”从右向左搜索。 – 2010-09-09 15:50:24