2011-05-19 76 views
3

下面的查询工作于MySQL 5.0中MySql的SQL_NO_CACHE发行5.0至5.5

SELECT SQL_NO_CACHE 
    ItemId, 
    AnotherColumn 
FROM 
    TableOne 
UNION 
SELECT SQL_NO_CACHE 
    ItemId, 
    AnotherColumn 
FROM 
    TableTwo 

但是在MySQL 5.5我得到以下错误:

MySql.Data.MySqlClient.MySqlException: Incorrect usage/placement of 'SQL_NO_CACHE'

什么是SQL_NO_CACHE的工会的正确位置疑问?

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

回答

5

在MySQL 5.5.3中,你只需要在一个UNION查询的第一选择以指定SQL_NO_CACHE:

SELECT SQL_NO_CACHE 
    ItemId, 
    AnotherColumn 
FROM 
    TableOne 
UNION 
SELECT 
    ItemId, 
    AnotherColumn 
FROM 
    TableTwo 

它适用于整个查询。如果你尝试在随后的SELECT语句中指定它,它将会出错(并且现在也允许在子查询中使用它)。