表Visit
包含extra
列,以user:xxx login:yyy
(字符串类型)编写。
我想确定所有不同密码的数量(在login
之后)。我在我的控制器中写了这个ActiveRecord查询。
Visit.select(:extra).where('extra LIKE ?', "%login%").distinct.count
此查询将为我提供不同extra
的结果,其中包含单词login
而非密码(在此示例中为yyy
)。我想对login
之后的所有字符串(密码)执行相同的操作。
有没有解决办法?任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用MySQL SUBSTRING_INDEX
来实现此目标。
Visit.select("SUBSTRING_INDEX(extra, ':', -1)").where('extra LIKE ?', "%login%").distinct.count