如何从具有特定名称组合的数据库中获取数据
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+(_.*)?$")
我正在 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+(_.*)?$")