Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查select语句是否包含文本,然后用另一个文本进行更改_Php_Mysql_Sql_Triggers - Fatal编程技术网

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

Php 检查select语句是否包含文本,然后用另一个文本进行更改,php,mysql,sql,triggers,Php,Mysql,Sql,Triggers,我是MySql的新手^ u^ 我使用的是一个名为GLPI的现有开源软件,他们使用的是MVC方法,因此我发现编辑主代码非常困难,这就是为什么我决定发布这个问题,如果我可以只更改MySql中的select语句的话 所以我需要知道,如果有任何操作包含( ) 然后用 ( ) 提前感谢基于您的问题,您似乎只需要对一行执行此操作,因此为什么不将id为“-2”的行复制到id为“1”的行中,然后 DELIMITER $$ CREATE TRIGGER myTrigger AFTER UPDATE ON `glp

我是MySql的新手^ u^


我使用的是一个名为GLPI的现有开源软件,他们使用的是MVC方法,因此我发现编辑主代码非常困难,这就是为什么我决定发布这个问题,如果我可以只更改MySql中的select语句的话

所以我需要知道,如果有任何操作包含(

)

然后用 (

)


提前感谢

基于您的问题,您似乎只需要对一行执行此操作,因此为什么不将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='-1'
替换每个
id='-2'
,请查看

MySQL Proxy是一个简单的程序,它位于客户端和MySQL服务器之间,可以监视、分析或转换它们的通信

它的灵活性允许无限的使用;常见的有:

  • 负载平衡
  • 故障转移
  • 查询分析
  • 查询过滤和修改
还有更多


现在,您可以找到安装、使用和运行MySQL代理的所有链接。

我认为没有现成的方法可以做到这一点,不。为什么您首先需要这样做?这应该在应用程序级别而不是数据库中进行修复。我正在使用一个名为GLPI的现有开源软件,它们使用的是MVC方法,因此我发现编辑主代码非常困难,就像Pekka所说的,您需要在应用程序级别而不是数据库级别进行修复。如果您确实需要MVC默认行为,您可以覆盖它(尽管不建议新手使用)。尝试找出模型并在该模型中创建一个方法,然后在刚刚创建的方法中输入sql。然后,您可以动态调用该方法来运行上面的sql。@Autolycus tnks,您能更具体一点吗?tnks@FatDog47,这不起作用,因为在应用程序中,他们使用(id='-2')调用记录,所以我需要MySQL中的一些内容,可以查看是否有与(id='-2')相关的操作,然后使用(id='-1')进行更改然后把它寄出去,你唯一的解决办法就是。MySQL代理位于应用程序和MySQL之间,可以对传入的查询执行分析和修改。
SELECT * FROM `glpi_tickettemplates`  WHERE `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;