|
|
|
| есть плагин для WordPress XmasB Quotes, он у меня работает превосходно на localhost с MySQL: 5.0.33, но когда я переношу его к хостеру с MySQL: 5.0.45 он вызывает ошибку. вот текст ошибки:
[Tue Jun 10 12:51:07 2008] [error] WordPress database
error You have an error in your SQL syntax. Check the
manual that corresponds to your MySQL server version for
the right syntax to use near ‘SELECT FLOOR(MAX(ID)*RAND())
AS ID FROM wp_xmasb_quotes) AS x O for query SELECT * FROM
wp_xmasb_quotes T JOIN (SELECT FLOOR(MAX(ID)*RAND()) AS ID
FROM wp_xmasb_quotes) AS x ON T.ID >= x.ID and visible = 1
LIMIT 1 made by xmasb_get_random_quote
|
понятно, что ошибку вызывает запрос:
$sql = 'SELECT * FROM ' . XMASB_QUOTES_TABLE . ' T
JOIN (SELECT FLOOR(MAX(ID)*RAND()) AS ID FROM ' .
XMASB_QUOTES_TABLE . ') AS x ON T.ID >= x.ID and visible = 1 LIMIT 1';
|
я списался с автором плагина, но у него MySQL вообще версии 4.1.21 и он не может понять, что в этом запросе неправильно. все, что он посоветовал это перейти на другую версию плагина, где этот запрос выполнен по-другому - "неэффективно" типа
sql = "SELECT * FROM " . XMASB_QUOTES_TABLE . " where
visible = 1 ORDER BY RAND() limit 1"; //Ineffective code
|
так, конечно, работает, но не хотелось бы пользоваться неэффективным кодом, да и при выходе каждой новой версии плагина ручками менять запрос ломает. отсюда вопрос - в чем различие между MySQL: 5.0.33, на котором запрос работает и MySQL: 5.0.45, в котором запрос не работает? и можно ли как-нибудь поправить этот запрос, чтобы он работал? | |
|
|