テスト (web2py 以外) プログラムでは、SELECT SUBSTRING_INDEX を呼び出す MySQL クエリを使用しています。これを web2py の DAL 仕様内で適切な使用法に変換する最も簡単な方法は何ですか?
クエリは次のとおりです。
http://pastie.textmate.org/3848916
SELECT SUBSTRING_INDEX( ipaddress, '.', 3 ) AS first_three_octet, count( * ) AS ipCount, updated
FROM ips
GROUP BY SUBSTRING_INDEX( ipaddress, '.', 3 )
HAVING ipCount = 254
ORDER BY ipCount DESC
参考までに-必要なことを達成するために、その間にこのコードをまとめました。
def ListFullRanges():
import re
f3o = '(\d{1,3}\.\d{1,3}\.\d{1,3})'
fullrange = []
rg1 = re.compile(f3o,re.IGNORECASE|re.DOTALL)
for row in db(db.ips).select():
m = rg1.findall(row.ipaddress)
if not m[0] in fullrange:
if db(db.ips.ipaddress.startswith(m[0])).count() == 254:
fullrange.append(m[0])
print fullrange
return dict(fr=fullrange)