我如何在里面使用Mysql变量... Mysql正则表达式?
例如,
SET @my_var = (
SELECT
year
FROM blah
LIMIT 1);
SELECT
foo,
bar
FROM my_table
WHERE date REGEXP @my_var%
也试过...... WHERE date REGEXP '@my_var%'
我要做的是...... WHERE date REGEXP '2015%'
答案 0 :(得分:1)
您可以使用concat
:
where col regexp concat(@my_var, '%')
但有两件事:
LIKE
模式,而不是REGEXP
模式。LIKE
或REGEXP
用于日期。 MySQL有许多有用的日期函数。所以,我想你想要:
where year(date) = 2015
或:
where date >= '2015-01-01' and date < '2016-01-01'
最后一个版本是首选版本,因为它可以利用索引(如果可用)。
答案 1 :(得分:0)
另一种方式,取决于您想要的组织方式...
SET @var = 101;
SET @regex = concat("^",@var,"$");
SELECT * FROM db.table
WHERE col REGEXP @regex;