假设我有一个非常简单的桌子:
CREATE TABLE Bands (Name VARCHAR(20) NOT NULL) ENGINE = INNODB;
INSERT INTO Bands VALUES ('Hammerfall'), ('Helloween'), ('Haggard'),
('Therion'), ('Tarja');并运行一个查询:
SET @i := 0;
SELECT @i := @i + 1 No, Name
FROM Bands
WHERE Name LIKE 'H%'在HeidiSQL和PhyMyAdmin上,它运行良好:
1 Hammerfall
2 Helloween
3 Haggard但是在德尔菲,2009年失败了
server :您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以获得正确的语法,在“SELECT @i := @i +1 No”附近使用“SELECT@i@i+1 No”,即名称为“H%”的波段的名称
我用TZQuery.SQL框、Query.SQL.Text和Query.SQL.Add()编写查询。都失败了。
有办法运行这个查询吗?
我将使用的真正查询是连接一些20+列表来生成一些报告。但我甚至不能让这个小东西在~__~上工作
发布于 2013-02-27 18:45:25
正如评论者所指出的,这个问题是双重的.
:,则不能使用TQuery.CheckParams = true。请注意,使用没有显式主键的InnoDB表是个坏主意。
问题是,如果您不创建一个PK,MySQL将为您创建一个隐藏的PK,这将降低连接性能。
如果希望InnoDB高效运行,则建议创建
integer primary key auto_increment每张桌子上都有字段。
https://stackoverflow.com/questions/15106721
复制相似问题