我有这样的看法:
CREATE VIEW MyView AS
SELECT Column FROM Table WHERE Value = 2;
我想让它更通用,这意味着将2变成一个变量。我试过这个:
CREATE VIEW MyView AS
SELECT Column FROM Table WHERE Value = @MyVariable;
但是mysql不允许这样。
我发现一个丑陋的解决方法:
CREATE FUNCTION GetMyVariable() RETURNS INTEGER DETERMINISTIC NO SQL
BEGIN RETURN @MyVariable; END|
And then view is:
CREATE VIEW MyView AS
SELECT Column FROM Table WHERE Value = GetMyVariable();
但它看起来真的很糟糕,使用也很appy – 我必须在每次使用视图之前设置@MyVariable。
有一个解决方案,我可以这样使用:
SELECT Column FROM MyView(2) WHERE (...)
具体情况如下:
我有一个表存储有关被拒绝请求的信息:
CREATE TABLE Denial
(
Id INTEGER UNSIGNED AUTO_INCREMENT,
PRIMARY KEY(Id),
DateTime DATETIME NOT NULL,
FeatureId MEDIUMINT UNSIGNED NOT NU