我工作的增量更新腳本,每次我嘗試使用這個命令:獅身人面像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遷移到最新版本,希望能修復它,但無法修復它。
您是否嘗試過使用'Sphinx search'來運行子查詢?它回來了什麼?我猜這就是你的問題所在。 –
我如何通過獅身人面像搜索運行子查詢並知道它返回的值是什麼? –
我回頭再看看教程,最後幾句話強調sql_query_pre, 的重要性如果在每個SINGLE查詢之後沒有放置「sql_query_pre = SET NAMES utf8」,將無法正常工作。它現在有效。 –