MySql SQL_NO_CACHE 5.0和5.5之间的问题

Fen*_*ton 4 mysql

以下查询适用于MySql 5.0

SELECT SQL_NO_CACHE
    ItemId,
    AnotherColumn
FROM
    TableOne
UNION
SELECT SQL_NO_CACHE
    ItemId,
    AnotherColumn
FROM
    TableTwo
Run Code Online (Sandbox Code Playgroud)

但在MySql 5.5中我收到以下错误:

MySql.Data.MySqlClient.MySqlException:'SQL_NO_CACHE'的使用/位置不正确

对于UNION查询,SQL_NO_CACHE的正确位置是什么?

如果我将SQL_NO_CACHE放在UNION的一侧,它会影响双方吗?

Fen*_*ton 6

从MySql 5.5.3开始,您只需要在UNION查询的第一个SELECT中指定SQL_NO_CACHE:

SELECT SQL_NO_CACHE
    ItemId,
    AnotherColumn
FROM
    TableOne
UNION
SELECT
    ItemId,
    AnotherColumn
FROM
    TableTwo
Run Code Online (Sandbox Code Playgroud)

它适用于整个查询.如果您尝试在后续的SELECT语句中指定它,则会出错(现在也允许在子查询中使用).