hibernate 休眠,HQL:计算字符串中特定字符的出现次数

x33g5p2x  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(165)

我有一个名为“Posts”的表,其“WBS”字段的类型为varchar(50)。Wbs字段中的值匹配以下模式:例如:“1.2.3”、“123.123”、“123”、“123.3.2.1”等。
我需要选择“WBS”字段的值有两个点、一个点或没有的所有记录。
我的问题是:如何计算字符串中特定字符的出现次数?
例如,在MySQL和Oracle上,我可以尝试以下查询:

SELECT *
FROM posts
WHERE LENGTH(WBS) - LENGTH(REPLACE(WBS, '.', '')) = 1;

在此处找到:Word count in Hibernate Query Language (hql)

1qczuiv0

1qczuiv01#

您可以在HQL中使用几乎相同的查询。假设您的实体名为Post,而WBS的属性为wbs,则可以使用:

SELECT p
FROM Post p
WHERE LENGTH(p.wbs) - LENGTH(REPLACE(p.wbs, '.', '')) = 1;

相关问题