如何从具有特定名称组合的数据库中获取数据

How to get data from database with specific combination of name

我正在 ruby rails 项目上工作,我需要从数据库中获取具有特定组合的数据,例如 c*_c*_othername * 可以编号为 1、2、3 等喜欢 c1_c1_anystring。前缀 c 永远固定。 我正在尝试使用以下代码,但它不起作用

Topic.where("name like ?", "%c*_c*_*%")

你可以试试

Topic.where("name like 'c_\_c_\_%'")

您可能需要SIMILAR TO

试试下面的方法:

Topic.where('name SIMILAR TO ?', "%c\d\_c\d\_%")

如果您接受不止一位数字,请使用以下模式

Topic.where('name SIMILAR TO ?', "%c\d+\_c\d+\_%")

如果您不喜欢转义下划线,您也可以使用 ~ 进行模式匹配,如文档中所述:

Topic.where('name ~ ?', ".*c\d+_c\d+_.*")

\d in the regular expression matches digits from 0 to 9

c*_c*_othername the othername is not compulsory. Some time the name is c5_c6 only so this type of names I also want to get

请尝试以下模式

 Topic.where('name ~ ?', ".*c\d+_c\d+(_.*)?$")