MySQL 在触发器中使用变量 LIKE '%Variable_Name%'

标签 mysql triggers

我有这个简单的小触发器..

BEGIN

    DECLARE FILE_NAME VARCHAR(250);
    DECLARE FILE_REFR VARCHAR(500);


SET FILE_NAME = 'Foo';
SET FILE_REFR = 'Bar';

--- I'd like to execute the next statement, using variable FILE_REFR between %% in a LIKE clause:
SELECT COUNT(*) INTO @num_rows FROM referers WHERE filename = FILE_NAME AND ref NOT LIKE "%FILE_REFR%";

...
...
...

END

不幸的是,变量名没有作为变量被拾取..但作为 CHAR,我知道那里缺少一些东西。

非常感谢您的帮助..:)

最佳答案

将变量用作:

CONCAT('%', FILE_REFR, '%');

所以完整的选择查询是:

SELECT COUNT(*) INTO @num_rows FROM referers WHERE filename = FILE_NAME AND ref NOT LIKE  CONCAT('%', FILE_REFR, '%');

谢谢

关于MySQL 在触发器中使用变量 LIKE '%Variable_Name%',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23860150/

相关文章:

php - 删除一行或多行后,在 auto_increment 列上使用下一个可能的主键

wpf - 有没有办法在触发器之间重用属性 setter

php - 重复 - php 代码重复 MySQL 中的行 - 出了什么问题?

mysql - 如何在 sphinx 中执行 SQL Join 等效功能?

mysql - 由于在 MySQL 中使用保留字作为表名或列名而导致的语法错误

Mysql:在一个流程中 INSERT 上的过程 + 触发器

c# - 如何在 WPF 中按名称查找样式触发器嵌入元素?

php - MySQL 存储过程

php - yii 框架上的 ajax 响应非常慢

mysql - 同一张表上触发插入