2011-11-16 75 views
0

我工作的增量更新腳本,每次我嘗試使用這個命令:獅身人面像MySQL的子查詢不能正常工作

SELECT id, title, search 
FROM related 
WHERE id > 
(
    SELECT max_doc_id 
    FROM sphinx_delta 
    WHERE counter_id = 2 
) 

是運行在phpMyAdmin將返回10個結果。

SELECT id, title, search 
FROM related 
WHERE id > 1010 

在phpMyAdmin中運行,將返回相同的10個結果。當然,從子選擇返回的值是1010.

唯一的問題是,當我在Sphinx搜索中使用第一個查詢時,它返回0個結果,而第二個返回10個結果。我不知道什麼是錯的,兩個查詢都在MySQL中完美工作,並且我使用Sphinxs網站上的教程來創建配置文件。

下面是從我的配置文件中的部分:

source delta2 : related 
    { 
      type  = mysql 

      sql_host = localhost 
      sql_user = * 
      sql_pass = * 
      sql_db  = base 
      sql_port = 3306 

      sql_query = SELECT id, title, search FROM related WHERE id > (SELECT max_doc_id FROM sphinx_delta WHERE counter_id = 2) 
    } 

我嘗試了獅身人面像的論壇中發帖這一點,但得到0的響應。任何建議,我從0.9.9遷移到最新版本,希望能修復它,但無法修復它。

+0

您是否嘗試過使用'Sphinx search'來運行子查詢?它回來了什麼?我猜這就是你的問題所在。 –

+0

我如何通過獅身人面像搜索運行子查詢並知道它返回的值是什麼? –

+0

我回頭再看看教程,最後幾句話強調sql_query_pre, 的重要性如果在每個SINGLE查詢之後沒有放置「sql_query_pre = SET NAMES utf8」,將無法正常工作。它現在有效。 –

回答

0

您正在更新增量,同時嘗試從... delta讀取?獅身人面像不更新索引,它重新創建它們,沒有任何可讀的。

+0

我不確定你在想什麼...請注意我的術語,我可能使用了不正確的術語來描述我的問題,但是如果您實際上閱讀我的問題,這是無關緊要的。 –