检查select语句是否包含文本,然后用另一个更改

时间:2013-02-09 19:20:20

标签: php mysql sql triggers

我是MySql的新手^ _ ^,

我正在使用一个名为GLPI的现有openSource,他们重新使用MVC方法,因此我发现编辑主代码非常困难,这就是为什么我决定发布这个问题,如果我可以从MySql更改选择语句相反。

所以我需要知道,如果有任何操作包含,我是否可以保持数据库监听(

SELECT * FROM `glpi_tickettemplates` WHERE `id` = '-2' 

然后用它来改变它 (

SELECT * FROM `glpi_tickettemplates`  WHERE `id` = '1' 

提前致谢

1 个答案:

答案 0 :(得分: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;

更新

如果您想要在所有传入的quires中使用id='-2'替换每个id='-1',请查看MySQL Proxy

MySQL代理是一个简单的程序,位于客户端和MySQL服务器之间,可以监控,分析或转换他们的通信。

其灵活性允许无限制使用;常见的包括:

  • 负载均衡
  • 故障转移
  • 查询分析
  • 查询过滤和修改

还有更多。

http://forge.mysql.com/wiki/MySQL_Proxy,您可以找到安装,使用和运行MySQL代理的所有链接。