我想用SELECT COUNT(*)
更改所有SELECT COUNT(1)
个查询(针对此用例)。
我有以下lua脚本,但它不能以某种方式工作:
function read_query( packet )
if string.byte(packet) == proxy.COM_QUERY then
local query = string.sub(packet, 2)
local replacing = false
if string.match(string.upper(query), 'COUNT(*)') then
query = string.gsub(query,'COUNT(*)', 'COUNT(1)')
replacing = true
end
if (replacing) then
proxy.queries:append(1, string.char(proxy.COM_QUERY) .. query )
return proxy.PROXY_SEND_QUERY
end
end
end
我做错了什么?
答案 0 :(得分:1)
如果要搜索字符串“COUNT(*)”,请记住第二个参数是模式而不是简单字符串,您可以使用
来转义字符串禁止正则表达式魔术字符^ $()%。[] * + - ?)
使用%转义字符前缀每个非字母数字字符(%W),其中%%是%转义符,%1是原始字符 p>
function strPlainText(strText)
return strText:gsub("(%W)","%%%1")
end
所以
if string.match(string.upper(query), strPlainText('COUNT(*)')) then