gpt4 book ai didi

MySQL 代理查询重写

转载 作者:可可西里 更新时间:2023-11-01 08:53:18 25 4
gpt4 key购买 nike

我想用 SELECT COUNT(1) 更改所有 SELECT COUNT(*) 查询(对于这个用例)。

我有以下 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

我做错了什么?

最佳答案

如果您正在搜索字符串“COUNT(*)”,请记住第二个参数是一个模式而不是一个简单的字符串,您可以使用以下命令对字符串进行转义

禁止正则表达式魔术字符 ^$()%.[]*+-?)

在每个非字母数字字符 (%W) 前加上一个 % 转义符,其中 %% 是 % 转义符, %1 是原始字符

function strPlainText(strText)
return strText:gsub("(%W)","%%%1")
end

所以

if string.match(string.upper(query), strPlainText('COUNT(*)')) then

关于MySQL 代理查询重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com