Rapaz, nunca vi algo desse tipo, mas acho que dá pra fazer usando a tabela como uma string:
local result = db.getResult("SELECT `value` FROM `player_storage` WHERE `key` = 15455")
if result:getID() == -1 then
return true
end
while true do
local value = result:getDataString("value")
if string.match(value, "{xx = (.-),") == "31" then
local a = "{xx = "..string.match(value, "{xx = (.-),")..", yy = "..string.match(value, "yy = (.-)}").."}"
db.executeQuery("DELETE FROM `player_storage` WHERE `value` = '"..a.."';")
end
if not result:next() then
break
end
end
Fiquei quase 1 hora tentando fazer isso, tomara que funcione .-.
OBS: Faz um backup da database antes de executar o script.





info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas
tipo, eu criei um script onde seto a alguns players uma tabela contendo 2 campos na storage de um player
exemplo:
setPlayerStorageValue(cid,15455,{xx = 31, yy = 12})gostaria de um comando que deletasse todas as linhas do banco de dados onde na storage 15455, no campo xx, tivesse com o numero 31, por exemplo, e quero utilizando o
exemplo:
db.executeQuery("Delete * from player_storages where key[xx] == 31")(claro q o exemplo acima nao funcionou, mas é isso q eu quero)
obrigado