我们正在使用hibernate 4和mysql 5.5.x以及Innodb作为我们的默认引擎。我们有一个存储过程,通过连接视图和在存储过程中创建的临时 MYISAM 临时表来返回一些行。 使用hibernate会话工厂和会话以及ScrollableResultSet调用存储的proc。它返回一个对象数组列表。 以下是示例查询
SELECT
col1, col2, col3, col4
FROM view1 v
JOIN temptable1 t on t.id = v.id
ORDER BY intcol DESC, varcharcol
这是问题...... 对于具有相同 intcol 值的行, varcharcol 上的辅助顺序无法正常工作,它们将以混乱的顺序返回。
返回示例行
Row1, 10, 'foo'
Row2 , 10, 'bar'
Row3, 10, 'foo'
Row4, 10, 'foo'
Row5, 10, 'bar'
有没有人遇到过类似的问题? 提前感谢您的回答。
答案 0 :(得分:0)
是的,我找到了可以指导你的东西。
例如,您不能在order by子句中使用变量。您必须连接一个值并使用后面的连接值。
像这样:
$stid = oci_parse($conn, "SELECT X FROM BOOKS " . $orderby);