【发布时间】:2013-04-05 14:51:08
【问题描述】:
我正在将我们的项目数据库从 SQL Server 转换为 MySQL,数据库转换已经完成。 但是在执行一些查询时,我遇到了一些错误。
我正在使用 ColdFusion 8、MySQL 5。
这是一个例子:
SELECT i.ID, s.Name, i.OccurredOn, i.MinorProblemID,
i.MajorProblemID, i.Problem, i.Motivation, i.Strategy1,
i.Strategy2, i.Strategy3, i.Decision,
COALESCE(CAST(s.Grade as int),-5) as Grade, i.LocationID,
l.Display as StartMonth, l.OrderBy as StartMonthOrder,
i.StudentID, u.ID as SourceID,
replace(u.FirstName+' '+u.LastName,'''','`') as Source,
replace(replace(replace(replace(replace(replace(replace(
ltrim(replace(CAST(OccurredOn as varchar(100)),CAST(OccurredOn
as varchar(12)),'')),':1',':0'),':2',':0'),':3',':0'),':4',':0'),
':5',':0'),':05',':00'),':00',':00 ') as StartHour
FROM ViewIncidents i
JOIN Students s ON i.StudentID = s.ID
LEFT OUTER JOIN Users u ON i.UserID = u.ID
LEFT OUTER JOIN Lookup l ON l.LookupCode = 'SchoolMonths'
AND l.Value = CAST(OccurredOn as varchar(3))
WHERE i.OccurredOn > '7/1/2012'
AND i.OccurredOn >= '7/1/2012'
ORDER BY i.OccurredOn DESC
在 SQL Server 中运行良好,但在 MySQL 中失败:
执行数据库查询时出错。
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行使用 'int),-5) 作为 Grade,i.LocationID,l.Display 作为 StartMonth,l.OrderBy as Star' 附近的正确语法
请帮助我将 db 从 mssql 迁移到 mysql 以及更改查询的最简单方法。
谢谢,
普拉塔梅什
【问题讨论】:
-
您是否真的在没有回车的情况下编写了所有查询?它使 FWIW 变得难以理解。
标签: mysql sql-server