我使用Freeradius的SQL模块来检查用户是否达到了它的每周数据限制,因为我使用此查询:
SELECT (IFNULL(SUM(AcctInputOctets), 0) + IFNULL(SUM(AcctOutputOctets), 0)) as used_data FROM (SELECT * FROM radacct b WHERE username = '%{%k}' AND DATE_FORMAT(acctstarttime, '%Y-%u') = DATE_FORMAT(CURDATE(), '%Y-%u') GROUP BY acctuniqueid) a
现在'%{%k}'
被Freeradius替换为用户'用户名,但%u
也被替换,这不应该发生,因为它应该由SQL处理以使用周数。
%Y
。
有关如何进行查询的任何想法,以便Freeradius不会逃避这个?
答案 0 :(得分:1)
正确的转义序列是%%u
。 %%
阻止它被解释为单个字母扩展。
答案 1 :(得分:0)
你应该像这样使用 %{用户名称}