2013-04-23 126 views
1

我正在开发一个C#项目,该项目有一个库,可以在各种项目中执行常见任务。将MySQL查询转换为Sqlite(SUBSTRING_INDEX)

我在库中有一个函数,它从表中获取警报列表。这个查询是在MySQL中完成的,但我现在需要与SQLite数据库相同的功能。

下面是我试图从MySQL到Sqlite的端口的查询。

SELECT id, min(date) as min_date, max(date) as max_date, type, partMsg, level, page, COUNT(partMsg) AS msgCount FROM (SELECT id, date, type, SUBSTRING_INDEX(message, ':', 1) AS partMsg, level, page FROM alarms a WHERE acknowledged='0') p GROUP BY partMsg 

在当我把它抛出一个异常,说明SUBSTRING_INDEX SQLite数据库上运行此查询的那一刻是不是有效的函数。 SQLite有一个替代功能,可以做到这一点。

感谢您提供的任何帮助。

回答

1

尝试:

SELECT id, min(date) as min_date, max(date) as max_date, type, partMsg, level, page, COUNT(partMsg) AS msgCount FROM (SELECT id, date, type, substr(message, ':', 1) AS partMsg, level, page FROM alarms a WHERE acknowledged='0') p GROUP BY partMsg 
+0

感谢您的帮助。它有点类似的工作,但只显示一个组。我有''报警信息:''''报警警告:'''报警媒介''所以它应该3行,但它只显示1行的报警信息: – Boardy 2013-04-23 20:17:00