Bu bir süredir beni rahatsız ediyor ... Kullanıcı tablosunu sorgulamam ve adında çift boşluk olanları bulmam gerekiyor.MySQL REGEXP Rails ActiveRecord kullanarak
User.pluck(:full_name).select {|n| n =~ /([[:alpha:]]*)[[:space:]]{2}/ }
VEYA
:SELECT 'first last' REGEXP '[[:space:]]{2}';
Ben de yakut Regex kullanarak raylar çalışmak yapabilirsiniz: Ben, en basit ve daha özlü bir varlık db karşı doğrudan çalışmak SQL sorguları birden çok sürümü
User.pluck(:full_name).select {|n| n =~ /\w+\s{2}/ }
AR'yi çeşitli şekillerde kullanmaya çalışıyorum ama ne eksik olduğumu bilmiyorum. Belki bir şeyler kaçmak gerek ... Birkaç kez okuyun: http://dev.mysql.com/doc/refman/5.0/en/regexp.html
sorunun kaynağının regex ama değil
2] pry(main)> User.where("'full_name' REGEXP ?", "[[:alpha:]]*[[:space:]]{2}").count
=> 0
[3] pry(main)> User.where("'full_name' REGEXP ?", '[[:alpha:]]*[[:space:]]{2}').count
=> 0
[4] pry(main)> User.where("'full_name' REGEXP ?", '[[:alpha:]]*[[:space:]]{2}').to_sql
=> "SELECT `users`.* FROM `users` WHERE ('full_name' REGEXP '[[:alpha:]]*[[:space:]]{2}')"
[5] pry(main)> User.where("'full_name' REGEXP ?", '[[:space:]]{2}')
=> []
[6] pry(main)> User.where("'full_name' REGEXP ?", '[[:blank:]]{2}')
=> []
[7] pry(main)> User.where("'full_name' RLIKE ?", '[[:blank:]]{2}')
=> []
[8] pry(main)> User.where("'full_name' RLIKE ?", '[[:blank:]]{2}').to_sql
=> "SELECT `users`.* FROM `users` WHERE ('full_name' RLIKE '[[:blank:]]{2}')"
[9] pry(main)> User.where("'full_name' RLIKE ?", '[[:blank:]]').count
=> 0
[10] pry(main)> User.where("'full_name' RLIKE ?", '[[:space:]]').count
=> 0
[11] pry(main)> User.where("'full_name' RLIKE ?", '.*[[:space:]].*').count
=> 0
[12] pry(main)> User.where("'full_name' RLIKE ?", '\[[:space:]\]').count
=> 0
Bence en basit olanı: 'SELECT' ilk son 'LIKE'%% ''. –
Ne yazık ki işe yaramıyor .... [17] pry (main)> User.where ("'full_name' LIKE?", '%%'). => 0 – superuseroi