我是 MySql 的新手 ^_^ ,
我正在使用一个名为 GLPI 的现有开源代码,他们使用 MVC 方法,所以我发现编辑主代码非常困难,这就是为什么我决定发布这个问题,如果我可以更改 MySql 中的 select 语句相反。
所以我需要知道是否有任何方法可以让数据库监听是否有任何操作包含(
SELECT * FROM `glpi_tickettemplates` WHERE `id` = '-2'
)
然后将其更改为 (
SELECT * FROM `glpi_tickettemplates` WHERE `id` = '1'
)
提前致谢
最佳答案
根据您的问题,您似乎只需要一个特定行,那么为什么您不将 id='-2' 的行复制到 id='1' 的行,然后
DELIMITER $$
CREATE TRIGGER myTrigger AFTER UPDATE ON `glpi_tickettemplates`
CREATE TEMPORARY TABLE `tempTable`
AS
SELECT * FROM `glpi_tickettemplates` WHERE id='-2';
UPDATE `tempTable` SET id='1' WHERE id='-2';
REPLACE INTO `glpi_tickettemplates` SELECT * FROM `tempTable`;
DROP TEMPORARY TABLE `tempTable`;
DELIMITER;
更新:
如果您想将所有传入查询中的每个 id='-2'
替换为 id='-1'
,请查看 MySQL Proxy .
MySQL Proxy 是一个简单的程序,位于您的客户端和 MySQL 服务器之间,可以监视、分析或转换它们的通信。
它的灵 active 允许无限的使用;常见的包括:
- 负载均衡
- 故障转移
- 查询分析
- 查询过滤和修改
还有更多。
在http://forge.mysql.com/wiki/MySQL_Proxy您可以找到安装、使用和运行 MySQL Proxy 的所有链接。
关于php - 检查 select 语句是否包含文本,然后用另一个文本更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790616/